Fix broken wakeup() in threaded renderloop.
authorGunnar Sletta <gunnar.sletta@nokia.com>
Fri, 13 Apr 2012 13:46:47 +0000 (15:46 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 13 Apr 2012 14:26:39 +0000 (16:26 +0200)
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>
src/quick/items/qquickwindowmanager.cpp

index d075d3b..0a378f6 100644 (file)
@@ -1121,7 +1121,7 @@ void QQuickRenderThreadSingleContextWindowManager::wakeup()
 {
     lockInGui();
     isExternalUpdatePending = true;
-    if (isRenderBlocked || isPostingSyncEvent)
+    if (isRenderBlocked)
         wake();
     unlockInGui();
 }