summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qsemaphore.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/thread/qsemaphore.h')
-rw-r--r--src/corelib/thread/qsemaphore.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/corelib/thread/qsemaphore.h b/src/corelib/thread/qsemaphore.h
index 0e01f33f36..dda722a582 100644
--- a/src/corelib/thread/qsemaphore.h
+++ b/src/corelib/thread/qsemaphore.h
@@ -7,6 +7,8 @@
#include <QtCore/qglobal.h>
#include <QtCore/qdeadlinetimer.h>
+#include <chrono>
+
QT_REQUIRE_CONFIG(thread);
QT_BEGIN_NAMESPACE
@@ -64,11 +66,15 @@ bool QSemaphore::tryAcquire(int n, int timeout)
class QSemaphoreReleaser
{
public:
+ Q_NODISCARD_CTOR
QSemaphoreReleaser() = default;
+ Q_NODISCARD_CTOR
explicit QSemaphoreReleaser(QSemaphore &sem, int n = 1) noexcept
: m_sem(&sem), m_n(n) {}
+ Q_NODISCARD_CTOR
explicit QSemaphoreReleaser(QSemaphore *sem, int n = 1) noexcept
: m_sem(sem), m_n(n) {}
+ Q_NODISCARD_CTOR
QSemaphoreReleaser(QSemaphoreReleaser &&other) noexcept
: m_sem(other.cancel()), m_n(other.m_n) {}
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QSemaphoreReleaser)