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 (Cocoa-dev@lists.apple.com)

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/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to