diff --git a/src/common/guifacade.cpp b/src/common/guifacade.cpp index 8b2bf0dee..60a16d0f6 100644 --- a/src/common/guifacade.cpp +++ b/src/common/guifacade.cpp @@ -27,7 +27,6 @@ #include "lib/error.hpp" #include "lib/singleton.hpp" #include "lib/functorutil.hpp" -#include "lib/thread-wrapper.hpp" #include "common/instancehandle.hpp" #include @@ -46,7 +45,6 @@ namespace gui { using util::dispatchSequenced; using lib::Sync; using lib::RecursiveLock_NoWait; - using lib::Thread; @@ -62,7 +60,7 @@ namespace gui { : theGUI_("lumieraorg_Gui", 1, 1, "lumieraorg_GuiStarterPlugin") // load GuiStarterPlugin { ASSERT (theGUI_); - Thread ("GUI-Main", bind (&GuiRunner::kickOff, this, terminationHandle)); + this->kickOff (terminationHandle); if (lumiera_error_peek()) throw lumiera::error::Fatal("failed to bring up GUI",lumiera_error()); diff --git a/src/gui/guistart.cpp b/src/gui/guistart.cpp index 455dafabb..86a8a0ab4 100644 --- a/src/gui/guistart.cpp +++ b/src/gui/guistart.cpp @@ -53,6 +53,7 @@ #include "gui/guifacade.hpp" #include "gui/notification-service.hpp" #include "common/subsys.hpp" +#include "lib/thread-wrapper.hpp" #include "lib/singleton.hpp" extern "C" { @@ -60,11 +61,14 @@ extern "C" { #include "common/interfacedescriptor.h" } +#include #include using std::string; +using lib::Thread; +using std::tr1::bind; using lumiera::Subsys; using gui::LUMIERA_INTERFACE_INAME(lumieraorg_Gui, 1); @@ -120,14 +124,19 @@ namespace gui { }; + void + runGUI (Subsys::SigTerm& reportTermination) + { + GuiLifecycle(reportTermination).run(); + } } // (End) impl details void - kickOff (Subsys::SigTerm& reportTermination) + kickOff (Subsys::SigTerm& terminationHandle) { - GuiLifecycle(reportTermination).run(); + Thread ("GUI-Main", bind (&runGUI, terminationHandle)); } } // namespace gui