Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include "qsemaphore.h"
#include "qfutex_p.h"
#include "qdeadlinetimer.h"
#include "qdatetime.h"
#include "qdebug.h"
#include "qlocking_p.h"
#include "qwaitcondition_p.h"
#include <chrono>
Go to the source code of this file.
Classes | |
struct | QtSemaphorePrivate::Layout1 |
struct | QtSemaphorePrivate::Layout2 |
class | QSemaphorePrivate |
Namespaces | |
namespace | QtSemaphorePrivate |
Typedefs | |
using | QtSemaphorePrivate::Members = std::conditional_t<sizeof(Layout1) <= sizeof(Layout2), Layout1, Layout2> |
Functions | |
static int | futexAvailCounter (quintptr v) |
static bool | futexNeedsWake (quintptr v) |
static QBasicAtomicInteger< quint32 > * | futexLow32 (QBasicAtomicInteger< quintptr > *ptr) |
static QBasicAtomicInteger< quint32 > * | futexHigh32 (QBasicAtomicInteger< quintptr > *ptr) |
template<bool IsTimed> | |
bool | futexSemaphoreTryAcquire_loop (QBasicAtomicInteger< quintptr > &u, quintptr curValue, quintptr nn, QDeadlineTimer timer) |
template<typename T > | |
bool | futexSemaphoreTryAcquire (QBasicAtomicInteger< quintptr > &u, int n, T timeout) |
Variables | |
static constexpr bool | futexHasWaiterCount = false |
static constexpr quintptr | futexNeedsWakeAllBit |
static constexpr QDeadlineTimer::ForeverConstant | Expired |
|
static |
Definition at line 106 of file qsemaphore.cpp.
References futexHasWaiterCount, and Q_ASSERT.
Referenced by QSemaphore::available(), futexSemaphoreTryAcquire(), and futexSemaphoreTryAcquire_loop().
|
static |
Definition at line 138 of file qsemaphore.cpp.
References futexHasWaiterCount, ptr(), and Q_ASSERT.
Referenced by futexSemaphoreTryAcquire(), futexSemaphoreTryAcquire_loop(), and QSemaphore::release().
|
static |
Definition at line 129 of file qsemaphore.cpp.
References ptr().
Referenced by futexSemaphoreTryAcquire_loop(), and QSemaphore::release().
|
static |
Definition at line 119 of file qsemaphore.cpp.
References futexHasWaiterCount.
Referenced by QSemaphore::release().
bool futexSemaphoreTryAcquire | ( | QBasicAtomicInteger< quintptr > & | u, |
int | n, | ||
T | timeout ) |
Definition at line 196 of file qsemaphore.cpp.
References Expired, futexAvailCounter(), futexHasWaiterCount, futexHigh32(), Q_ASSERT, Q_UINT64_C, and qCritical.
Referenced by QSemaphore::acquire(), QSemaphore::tryAcquire(), and QSemaphore::tryAcquire().
bool futexSemaphoreTryAcquire_loop | ( | QBasicAtomicInteger< quintptr > & | u, |
quintptr | curValue, | ||
quintptr | nn, | ||
QDeadlineTimer | timer ) |
Definition at line 149 of file qsemaphore.cpp.
References futexAvailCounter(), futexHasWaiterCount, futexHigh32(), futexLow32(), futexNeedsWakeAllBit, QtFreeBSDFutex::futexWait(), ptr(), Q_ASSERT, and timer.
|
staticconstexpr |
Definition at line 192 of file qsemaphore.cpp.
Referenced by futexSemaphoreTryAcquire(), and QSemaphore::tryAcquire().
|
staticconstexpr |
Definition at line 100 of file qsemaphore.cpp.
Referenced by QSemaphore::QSemaphore(), futexAvailCounter(), futexHigh32(), futexNeedsWake(), futexSemaphoreTryAcquire(), futexSemaphoreTryAcquire_loop(), and QSemaphore::release().
|
staticconstexpr |
Definition at line 103 of file qsemaphore.cpp.
Referenced by futexSemaphoreTryAcquire_loop(), and QSemaphore::release().