Revision 4957d88...

Go back to digest for 22nd January 2012

Bug Fixes in Educational

Bernhard Beschow committed changes in [marble/KDE/4.8] /:

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

File Changes

Modified 7 files
  •   src/lib/MarbleRunnerManager.cpp
  •   src/lib/RunnerTask.cpp
  •   src/lib/RunnerTask.h
  •   src/plugins/runner/hostip/HostipRunner.cpp
  •   src/plugins/runner/nominatim/OsmNominatimRunner.cpp
  •   src/plugins/runner/openrouteservice/OpenRouteServiceRunner.cpp
  •   src/plugins/runner/yours/YoursRunner.cpp
7 files changed in total