Only the read lock needs priority inversion

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2022-02-10 19:26:09 +00:00
parent bd8b97f428
commit 9cb3696feb
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0
2 changed files with 9 additions and 9 deletions

View file

@ -29,18 +29,18 @@ struct SharedMutex {
SharedMutex() noexcept {
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&readLock, &attr);
pthread_mutexattr_destroy(&attr);
pthread_mutexattr_init(&attr);
pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
pthread_mutex_init(&writeLock, &attr);
pthread_mutexattr_destroy(&attr);
pthread_mutexattr_t attr2;
pthread_mutexattr_init(&attr2);
pthread_mutexattr_setprotocol(&attr2, PTHREAD_PRIO_NONE);
pthread_mutexattr_settype(&attr2, PTHREAD_MUTEX_NORMAL);
pthread_mutex_init(&writeLock, &attr2);
pthread_mutexattr_destroy(&attr2);
}
~SharedMutex() noexcept {