diff options
Diffstat (limited to 'src/corelib/thread/qwaitcondition_win.cpp')
-rw-r--r-- | src/corelib/thread/qwaitcondition_win.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/corelib/thread/qwaitcondition_win.cpp b/src/corelib/thread/qwaitcondition_win.cpp index e6610f18c8..a6ad95b397 100644 --- a/src/corelib/thread/qwaitcondition_win.cpp +++ b/src/corelib/thread/qwaitcondition_win.cpp @@ -38,14 +38,13 @@ ****************************************************************************/ #include "qwaitcondition.h" +#include "qdeadlinetimer.h" #include "qnamespace.h" #include "qmutex.h" #include "qreadwritelock.h" #include "qlist.h" #include "qalgorithms.h" -#ifndef QT_NO_THREAD - #define Q_MUTEX_T void* #include <private/qmutex_p.h> #include <private/qreadwritelock_p.h> @@ -184,6 +183,11 @@ bool QWaitCondition::wait(QMutex *mutex, unsigned long time) return returnValue; } +bool QWaitCondition::wait(QMutex *mutex, QDeadlineTimer deadline) +{ + return wait(mutex, deadline.remainingTime()); +} + bool QWaitCondition::wait(QReadWriteLock *readWriteLock, unsigned long time) { if (!readWriteLock) @@ -210,12 +214,16 @@ bool QWaitCondition::wait(QReadWriteLock *readWriteLock, unsigned long time) return returnValue; } +bool QWaitCondition::wait(QReadWriteLock *readWriteLock, QDeadlineTimer deadline) +{ + return wait(readWriteLock, deadline.remainingTime()); +} + void QWaitCondition::wakeOne() { // wake up the first waiting thread in the queue QMutexLocker locker(&d->mtx); - for (int i = 0; i < d->queue.size(); ++i) { - QWaitConditionEvent *current = d->queue.at(i); + for (QWaitConditionEvent *current : qAsConst(d->queue)) { if (current->wokenUp) continue; SetEvent(current->event); @@ -228,12 +236,10 @@ void QWaitCondition::wakeAll() { // wake up the all threads in the queue QMutexLocker locker(&d->mtx); - for (int i = 0; i < d->queue.size(); ++i) { - QWaitConditionEvent *current = d->queue.at(i); + for (QWaitConditionEvent *current : qAsConst(d->queue)) { SetEvent(current->event); current->wokenUp = true; } } QT_END_NAMESPACE -#endif // QT_NO_THREAD |