Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Thread safety with background fetching




On 31 Jul '08, at 9:59 AM, Ben wrote:

For usage, the summary is that I do:

[NSThread detachNewThreadSelector:@selector(doBackgroundFetch) toTarget:self withObject:nil];

and then -[XMLFetcherParser doYourThing] repeatedly sends newly created objects to receiveItem: using the performSelectorOnMainThread method. Once the spawned thread has done this, it never uses the sent object again.

My question is how should I protect this code from thread related problems? Do I just place @synchronized(){} blocks around the code in receiveItem: and it's counterpart in the spawned thread?

You shouldn't need to. It sounds like -receiveItem: is only called on the main thread, and if the helper object has finished with each new object before it sends it to -receiveItem:, those objects won't be accessed from multiple threads either.


You've basically got an agent-like mechanism, where the threads are very loosely coupled using queues of messages, and don't need to worry about synchronization issues. That's the way I like to arrange things too.

—Jens

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >Thread safety with background fetching (From: Ben <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.