Я опытный .NET-программист и растягиваю ноги с помощью iOS. Одна из моих любимых многопотоковых конструкций в .NET - ReaderWriterLock. Это позволяет использовать несколько считывателей или один писатель. Одна особенность, которую я действительно пропускаю в iOS, заключается в том, что блокировки являются повторными. То есть, потоки чтения могут приобретать блокировку чтения несколько раз, пока они выпускают ее столько же раз. Аналогично, поток одиночной записи может получить блокировку несколько раз, пока она освобождает блокировку на эквивалентное число.
Я заглянул в iOS Framework, и ни одна из конструкций не предлагает такую же поддержку, как и повторное подключение. Я также заглянул в библиотеку pthread. Я нашел rwlock, но он не позволяет повторного входа.
Есть ли что-нибудь в iOS, которое позволяет блокировать чтение и запись для повторного входа?