В чем разница ч / б PRLock и PRRWLock
В чем разница ч / б PRLock
а также PRRWLock
предоставлено библиотекой nspr?
2 ответа
Я ничего не знаю о библиотеке, но названия предполагают, что одна из них - стандартная блокировка, а другая - блокировка чтения / записи. Первый всегда дает монопольный доступ, а второй допускает множественное одновременное чтение, но эксклюзивные записи. Например, в pthreads api есть методы pthread_mutex_lock / pthread_mutex_unlock и pthread_rwlock_rdlock / pthread_rwlock_wrlock.
PRLock - это простой мьютекс. PRRWLock - это ( к сожалению недокументированная) блокировка чтения-записи.
Единственный источник документации, который я могу найти на PRRWLock, содержится в prrwlock.h
и включает методы, которые можно ожидать для реализации блокировки чтения-записи:
- Создать и уничтожить
- Получить Reader-замок
- Приобрести Writer-lock
- Снять замок
Пример его использования содержится в rwlocktest.c
, Ранг блокировки используется для обнаружения взаимоблокировок и применяется в отладочных сборках, чтобы гарантировать, что поток получает блокировку только ранга, равного или более, для всех текущих удерживаемых блокировок.