5#ifndef QREADWRITELOCK_P_H
6#define QREADWRITELOCK_P_H
19#include <QtCore/private/qlocking_p.h>
20#include <QtCore/private/qwaitcondition_p.h>
21#include <QtCore/qreadwritelock.h>
22#include <QtCore/qvarlengtharray.h>
95 case StateLockedForRead:
return LockedForRead;
96 case StateLockedForWrite:
return LockedForWrite;
101 const auto lock = qt_scoped_lock(
d->mutex);
102 if (
d->writerCount > 1)
103 return RecursivelyLocked;
104 else if (
d->writerCount == 1)
105 return LockedForWrite;
106 return LockedForRead;
std::condition_variable readerCond
bool lockForRead(std::unique_lock< std::mutex > &lock, QDeadlineTimer timeout)
bool lockForWrite(std::unique_lock< std::mutex > &lock, QDeadlineTimer timeout)
bool recursiveLockForRead(QDeadlineTimer timeout)
bool recursiveLockForWrite(QDeadlineTimer timeout)
static QReadWriteLockPrivate * allocate()
static QReadWriteLockStates::StateForWaitCondition stateForWaitCondition(const QReadWriteLock *lock)
QReadWriteLockPrivate(bool isRecursive=false)
std::condition_variable writerCond
QVarLengthArray< Reader, 16 > currentReaders
Combined button and popup list for selecting options.
static constexpr quintptr IdealMutexAlignment
GLbitfield GLuint64 timeout
[4]
GLdouble GLdouble GLdouble GLdouble q
#define QT_REQUIRE_CONFIG(feature)
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)