diff options
author | David Faure <david.faure@kdab.com> | 2013-03-15 19:47:46 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-22 12:12:36 +0100 |
commit | bf3a5ccef13d568662f027be62280aba1f73bada (patch) | |
tree | ffb684ec1c5be91bfe7fefc1be589147a4502801 /src/corelib/kernel/qeventdispatcher_unix.cpp | |
parent | 49d7e71f77f899c05e4b5187e8834dfcbddf4505 (diff) |
QThreadDataPrivate: fix data race on canWait boolean.
postEvent() accesses it with the postEventList mutex locked, but
processEvent() was checking it without any mutex locked.
Change-Id: I31bbb50f7a1c337067b8e3de16ee7cd11400b517
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qeventdispatcher_unix.cpp')
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_unix.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp index ae220363ba..6ef8c5621e 100644 --- a/src/corelib/kernel/qeventdispatcher_unix.cpp +++ b/src/corelib/kernel/qeventdispatcher_unix.cpp @@ -589,7 +589,7 @@ bool QEventDispatcherUNIX::processEvents(QEventLoop::ProcessEventsFlags flags) QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); int nevents = 0; - const bool canWait = (d->threadData->canWait + const bool canWait = (d->threadData->canWaitLocked() && !d->interrupt.load() && (flags & QEventLoop::WaitForMoreEvents)); |