What about removing replyQueue altogether, have the background operation add it's result processing back into backgroundQueue and just wait on backgroundQueue to finish?
-Stevo On Oct 1, 2011, at 3:44 PM, Quincey Morris wrote: > On Oct 1, 2011, at 15:06 , Kyle Sluder wrote: > >> NSOperationQueue backgroundQueue = /* some long-lived background queue */; >> NSOperationQueue replyQueue = [NSOperationQueue new]; >> int totalResult = 0; >> >> [replyQueue setSuspended:YES]; >> >> for (id foo in myFoos) { >> [backgroundQueue addOperationWithBlock:^{ >> int result = DoSomething(); >> [replyQueue addOperationWithBlock:^{ >> totalResult += result; >> }]; >> }]; >> } >> >> [replyQueue waitUntilAllOperationsAreFinished]; >> >> /* all done! */ > > Aren't you missing a [replyQueue setSuspended: NO] in there somewhere? And if > you do that, aren't you then failing to wait for backgroundQueue to empty? > >> But this falls apart if -waitUntilAllOperationsAreFinished doesn't >> look at -isSuspended, and it gets called before the first operation >> gets enqueued on the replyQueue. > > > I can't see anything that justifies an assumption that isSuspended has any > effect on the wait. Occam's Razor says that the wait returns immediately if > the queue is empty. > >> I can easily work around this by enqueuing a no-op operation on >> replyQueue right after calling -setSuspended > > Why not use [backgroundQueue addOperations: … waitUntilFinished: YES], then > [replyQueue waitUntilAllOperationsAreFinished], and forget about isSuspended? > > > _______________________________________________ > > 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/stevo%40monkey-tools.com > > This email sent to st...@monkey-tools.com _______________________________________________ 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 arch...@mail-archive.com