OSDN Git Service

Fixed a potential live-lock situation: Signals from the QThread can get lost, before...
authorlordmulder <mulder2@gmx.de>
Thu, 23 Feb 2012 16:00:22 +0000 (17:00 +0100)
committerlordmulder <mulder2@gmx.de>
Thu, 23 Feb 2012 16:00:22 +0000 (17:00 +0100)
commit3c1938af3cc8d91f6cb2d2c6eb360e7c8038a082
tree53a59b9be714b5d93f531c8ea18e84e3e4003acb
parentd92fb7fbcc34b7bf6b1649befab1d9eafec13684
Fixed a potential live-lock situation: Signals from the QThread can get lost, before we reach the QEventLoop->exec(), even if the required connections already exists. It seems that QApplication::processEvents() will discard signals for our QEventLoop, if that QEventLoop is not running yet! Without the QApplication::processEvents(), those signals would simply be enqueued until we call QEventLoop->exec(). In reality this bug was never triggered under normal circumstances, but it seems on some systems it can take longer to perform the "fade in" than to finish the initialization thread. In that situation the bug *was* triggered and caused the live-lock...
src/Config.h
src/Dialog_SplashScreen.cpp