Как вы получаете блокировку? Если вы звоните lock
, то тот факт, что вы даже работаете после этого, должен гарантировать, что вы его получили. Если вы позвоните lockBeforeDate
, возвращаемое значение сообщит вам.
Если вы хотите проверить из другого места, вы можете сделать
if ( [myLock tryLock] )
{
// oops, lock was not previously acquired!
...
[myLock unlock];
}
else
{
// yep, lock was already acquired
}
Однако в целом это кажется сомнительным занятием. Вы должны выполнять блокировку там, где это необходимо, и доверять ее работе, а не пытаться контролировать ее снаружи.