Re: Synchronizing Thread Execution
Re: Synchronizing Thread Execution
- Subject: Re: Synchronizing Thread Execution
- From: Dave MacLachlan <email@hidden>
- Date: Wed, 6 Dec 2006 09:10:32 -0800
On Dec 05, 2006, at 08:43 , Clark Cox wrote:
On 12/5/06, Buddy Kurz <email@hidden> wrote:
FYI: The Darwin source contains a comment that specifically says
@synchronized(nil) does nothing.
I'm wondering what the difference is between
@synchronized(myObject) {
//do stuff
}
and
{
[myLock lock];
//do stuff
[myLock unlock];
}
@synchronized(myObject)
{
foo;
}
is more like:
@try
{
[myLock lock];
foo;
}
@finally
{
[myLock unlock];
}
That is, it will be unlocked when an exception is thrown, or you
return from the current function, etc.
Probably should also be noted that the lock here under discussion
that the lock is a recursive lock. So for these to be equivalent,
myLock must be an NSRecursiveLock, not just a plain NSLock.
Cheers,
Dave
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden