У меня есть NSOperationQueue с несколькими NSOperations в нем.Я хочу убедиться, что определенная часть кода не выполняется параллельно.Я использую объект NSLock следующим образом:
[myLock lock]
some critical code
[myLock unlock]
К сожалению, вместо блокирующего вызова «lock» я получаю следующую ошибку:
- [NSLock lock]: deadlock ('(null)')
После некоторого исследования я заметил, что все операции NSO, кажется, выполняются в одном потоке.Я сделал этот вывод после регистрации идентификатора потока с помощью:
NSLog(@"Thread %@\n", self, [NSThread currentThread]);
Все операции выполняются в одном потоке.Даже если они выполняются параллельно как операции.
Имеет ли это смысл?я немного смущен.Я что-то пропустил?Видите ли вы какие-либо проблемы с использованием NSOperation и NSLock вместе?(Если нет, то я уверен, что ошибка в моем коде)