From 18094c66f00872e8e6af714c91c5a4e212d0f7b5 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Thu, 22 Mar 2012 22:26:54 +0100 Subject: [PATCH] Workaround for Windows XP: It appears that QThread::isRunning() may return TRUE even after the QThread object has already emitted the "finished" signal. For some reason this only occurs on Windows XP, but never occurs on my Windows 7 machine. As a workaround we will call QThread::yieldCurrentThread() and then try again. This seems to fix the issue on my Windows XP machine. --- src/Config.h | 2 +- src/Dialog_SplashScreen.cpp | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Config.h b/src/Config.h index f6aead69..c1f22fb2 100644 --- a/src/Config.h +++ b/src/Config.h @@ -30,7 +30,7 @@ #define VER_LAMEXP_MINOR_LO 4 #define VER_LAMEXP_TYPE Beta #define VER_LAMEXP_PATCH 7 -#define VER_LAMEXP_BUILD 912 +#define VER_LAMEXP_BUILD 914 /////////////////////////////////////////////////////////////////////////////// // Tool versions (minimum expected versions!) diff --git a/src/Dialog_SplashScreen.cpp b/src/Dialog_SplashScreen.cpp index 130c1042..d68df630 100644 --- a/src/Dialog_SplashScreen.cpp +++ b/src/Dialog_SplashScreen.cpp @@ -117,16 +117,20 @@ void SplashScreen::showSplash(QThread *thread) //Start the timer timer->start(30720); - //Loop while thread is running + //Loop while thread is still running while(thread->isRunning()) { loop->exec(); if(thread->isRunning()) { - qWarning("Potential deadlock in initialization thread!"); + QThread::yieldCurrentThread(); + if(thread->isRunning()) + { + qWarning("Potential deadlock in initialization thread!"); + } } } - + //Stop the timer timer->stop();