![]() |
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().