В чем разница ч / б 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, Ранг блокировки используется для обнаружения взаимоблокировок и применяется в отладочных сборках, чтобы гарантировать, что поток получает блокировку только ранга, равного или более, для всех текущих удерживаемых блокировок.

Другие вопросы по тегам