![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <qreadwritelock_p.h>
Classes | |
| struct | Reader |
Public Member Functions | |
| QReadWriteLockPrivate (bool isRecursive=false) | |
| bool | lockForWrite (std::unique_lock< std::mutex > &lock, QDeadlineTimer timeout) |
| bool | lockForRead (std::unique_lock< std::mutex > &lock, QDeadlineTimer timeout) |
| void | unlock () |
| void | release () |
| bool | recursiveLockForWrite (QDeadlineTimer timeout) |
| bool | recursiveLockForRead (QDeadlineTimer timeout) |
| void | recursiveUnlock () |
Static Public Member Functions | |
| static QReadWriteLockPrivate * | allocate () |
| static QReadWriteLockStates::StateForWaitCondition | stateForWaitCondition (const QReadWriteLock *lock) |
Public Attributes | |
| std::condition_variable | writerCond |
| std::condition_variable | readerCond |
| std::mutex | mutex |
| int | readerCount = 0 |
| int | writerCount = 0 |
| int | waitingReaders = 0 |
| int | waitingWriters = 0 |
| const bool | recursive |
| int | id = 0 |
| Qt::HANDLE | currentWriter = {} |
| QVarLengthArray< Reader, 16 > | currentReaders |
Definition at line 43 of file qreadwritelock_p.h.
|
inlineexplicit |
Definition at line 46 of file qreadwritelock_p.h.
References recursive.
|
static |
Definition at line 565 of file qreadwritelock.cpp.
References id, readerCount, recursive, waitingReaders, waitingWriters, and writerCount.
| bool QReadWriteLockPrivate::lockForRead | ( | std::unique_lock< std::mutex > & | lock, |
| QDeadlineTimer | timeout ) |
Definition at line 416 of file qreadwritelock.cpp.
References readerCond, readerCount, waitingReaders, waitingWriters, and writerCount.
| bool QReadWriteLockPrivate::lockForWrite | ( | std::unique_lock< std::mutex > & | lock, |
| QDeadlineTimer | timeout ) |
Definition at line 437 of file qreadwritelock.cpp.
References readerCond, readerCount, waitingReaders, waitingWriters, writerCond, and writerCount.
| bool QReadWriteLockPrivate::recursiveLockForRead | ( | QDeadlineTimer | timeout | ) |
Definition at line 480 of file qreadwritelock.cpp.
References recursive.
| bool QReadWriteLockPrivate::recursiveLockForWrite | ( | QDeadlineTimer | timeout | ) |
Definition at line 502 of file qreadwritelock.cpp.
References recursive, and writerCount.
| void QReadWriteLockPrivate::recursiveUnlock | ( | ) |
Definition at line 520 of file qreadwritelock.cpp.
References readerCount, recursive, unlock(), and writerCount.
| void QReadWriteLockPrivate::release | ( | ) |
Definition at line 575 of file qreadwritelock.cpp.
References readerCount, recursive, waitingReaders, waitingWriters, and writerCount.
|
inlinestatic |
Helper for QWaitCondition::wait
Definition at line 91 of file qreadwritelock_p.h.
References QReadWriteLockStates::LockedForRead, QReadWriteLockStates::LockedForWrite, QReadWriteLockStates::RecursivelyLocked, QReadWriteLockStates::StateLockedForRead, QReadWriteLockStates::StateLockedForWrite, QReadWriteLockStates::StateMask, QReadWriteLockStates::Unlocked, and writerCount.
| void QReadWriteLockPrivate::unlock | ( | ) |
Definition at line 466 of file qreadwritelock.cpp.
References readerCond, waitingReaders, waitingWriters, and writerCond.
Referenced by recursiveUnlock().
| QVarLengthArray<Reader, 16> QReadWriteLockPrivate::currentReaders |
Definition at line 77 of file qreadwritelock_p.h.
| Qt::HANDLE QReadWriteLockPrivate::currentWriter = {} |
Definition at line 70 of file qreadwritelock_p.h.
| int QReadWriteLockPrivate::id = 0 |
Definition at line 65 of file qreadwritelock_p.h.
Referenced by allocate().
| std::mutex QReadWriteLockPrivate::mutex |
Definition at line 52 of file qreadwritelock_p.h.
| std::condition_variable QReadWriteLockPrivate::readerCond |
Definition at line 50 of file qreadwritelock_p.h.
Referenced by lockForRead(), lockForWrite(), and unlock().
| int QReadWriteLockPrivate::readerCount = 0 |
Definition at line 53 of file qreadwritelock_p.h.
Referenced by allocate(), lockForRead(), lockForWrite(), recursiveUnlock(), and release().
| const bool QReadWriteLockPrivate::recursive |
Definition at line 57 of file qreadwritelock_p.h.
Referenced by QReadWriteLockPrivate(), allocate(), recursiveLockForRead(), recursiveLockForWrite(), recursiveUnlock(), and release().
| int QReadWriteLockPrivate::waitingReaders = 0 |
Definition at line 55 of file qreadwritelock_p.h.
Referenced by allocate(), lockForRead(), lockForWrite(), release(), and unlock().
| int QReadWriteLockPrivate::waitingWriters = 0 |
Definition at line 56 of file qreadwritelock_p.h.
Referenced by allocate(), lockForRead(), lockForWrite(), release(), and unlock().
| std::condition_variable QReadWriteLockPrivate::writerCond |
Definition at line 49 of file qreadwritelock_p.h.
Referenced by lockForWrite(), and unlock().
| int QReadWriteLockPrivate::writerCount = 0 |
Definition at line 54 of file qreadwritelock_p.h.
Referenced by allocate(), lockForRead(), lockForWrite(), recursiveLockForWrite(), recursiveUnlock(), release(), and stateForWaitCondition().