[Marble-bugs] [Bug 288612] Marble and Qt 4.8 don't play well together

Dennis Nienhüser earthwings at gentoo.org
Fri Jan 20 22:30:37 UTC 2012


https://bugs.kde.org/show_bug.cgi?id=288612





--- Comment #16 from Dennis Nienhüser <earthwings gentoo org>  2012-01-20 22:30:37 ---
Git commit fd719f720a3fa7a0c599d0b6f06259e2ddca19b9 by Dennis Nienhüser, on
behalf of Bernhard Beschow.
Committed on 16/01/2012 at 20:01.
Pushed by nienhueser into branch 'Touch/1.3'.

instantiate event loops in runner plugins rather than in RunnerTask and
instantiate runners in background threads

Instantiating the event loops in the runner plugins rather than in RunnerTask
resolves weired usage of QEventLoop: The synchronous runners were finished
before QEventLoop::exec() was called. Somehow the finished signal of the
runners still managed to quit the loop, such that exec() wouldn't block. Until
Qt 4.8 we might just have been lucky...

Instantiating runners in the background thread avoids thread affinity issues
wrt. to QEventLoop. In particular, QEventLoop instances would block a
background thread forever because calling quit() or exit() wouldn't cause
exec() to return.
FIXED-IN: 1.3.0
REVIEW: 103711

M  +9    -22   src/lib/MarbleRunnerManager.cpp
M  +57   -44   src/lib/RunnerTask.cpp
M  +33   -16   src/lib/RunnerTask.h
M  +7    -0    src/plugins/runner/hostip/HostipRunner.cpp
M  +14   -0    src/plugins/runner/nominatim/OsmNominatimRunner.cpp
M  +7    -0    src/plugins/runner/openrouteservice/OpenRouteServiceRunner.cpp
M  +8    -0    src/plugins/runner/yours/YoursRunner.cpp

http://commits.kde.org/marble/fd719f720a3fa7a0c599d0b6f06259e2ddca19b9

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Marble-bugs mailing list