On 19 Jul 2012, at 1:47 AM, Rick C. wrote: > If I use this to initiate a background "thread": > > > dispatch_async(dispatch_get_global_queue(0, 0), ^{ > > // do some stuff > > [self runMyFunction]; > > [self runAnotherFunction]; > > // do some more stuff > > }); > > > My question is with my sample calling runMyFunction or runAnotherFunction are > they blocking? Meaning will they block the background "thread" until they are > complete and then it will continue? Or must I put them into another kind of > block so that they finish FIFO? Thanks just looking for a confirmation as > I'm moving to GCD from threads...
Grand Central Dispatch and blocks are orthogonal; GCD uses blocks as its unit of work, but does nothing special to them internally. A block is an anonymous (Objective-) C function. It executes from top to bottom, and if it calls a function/method in the middle, the execution path goes into the function, and when the function returns, execution proceeds in the block from there — just like any other function. For that reason, you don't have to serialize -runMyFunction and -runAnotherFunction; they get run one after the other as in any other code. — F -- Fritz Anderson -- Xcode 4 Unleashed: Now in stores! -- <http://x4u.manoverboard.org/> _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com