diff options
author | Gunnar Sletta <gunnar.sletta@nokia.com> | 2012-04-13 15:46:47 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-13 16:26:39 +0200 |
commit | 519a2716d6ffa9f3556946f4f4da11e77e83023d (patch) | |
tree | 68414487f3f777682d81c3382e32f01f97e4b99b /src/quick/items/qquickwindowmanager.cpp | |
parent | f19e6d72ac4fd2a606c9208dc61d6ce1520e1f18 (diff) |
Fix broken wakeup() in threaded renderloop.
It is cruicial that the sync handshake between GUI and render
does not get interrupted. If it does, the sync will happen with
the GUI unlocked which leads to crashes. When the sync event
comes through to the GUI afterwards the GUI will block waiting
while the renderer is most likely already done with the sync,
causing GUI to wait indefinitely.
Change-Id: I00bf0c36088510609a9e6f4d0649b9aaeefcd241
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/quick/items/qquickwindowmanager.cpp')
-rw-r--r-- | src/quick/items/qquickwindowmanager.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/quick/items/qquickwindowmanager.cpp b/src/quick/items/qquickwindowmanager.cpp index d075d3b64b..0a378f61ae 100644 --- a/src/quick/items/qquickwindowmanager.cpp +++ b/src/quick/items/qquickwindowmanager.cpp @@ -1121,7 +1121,7 @@ void QQuickRenderThreadSingleContextWindowManager::wakeup() { lockInGui(); isExternalUpdatePending = true; - if (isRenderBlocked || isPostingSyncEvent) + if (isRenderBlocked) wake(); unlockInGui(); } |