remove virtual inheritance of sigc::trackable by Receiver and AbstractUI<T>, done...
[ardour.git] / libs / pbd / pbd / base_ui.h
index 414c9970d979e5c3cc038988f86d3fe74ed00b0f..65a9f27b49225b915fdad28c25881457b7535b99 100644 (file)
@@ -41,7 +41,7 @@
  */
 
 
-class BaseUI : virtual public sigc::trackable, public PBD::EventLoop
+class BaseUI : public sigc::trackable, public PBD::EventLoop
 {
   public:
        BaseUI (const std::string& name);
@@ -76,6 +76,14 @@ class BaseUI : virtual public sigc::trackable, public PBD::EventLoop
 
        Glib::RefPtr<Glib::MainLoop> _main_loop;
        Glib::Thread*                 run_loop_thread;
+       Glib::Mutex                  _run_lock;
+       Glib::Cond                   _running;
+
+       /* this signals _running from within the event loop,
+          from an idle callback 
+       */
+
+       bool signal_running ();
 
        /** Derived UI objects can implement thread_init()
         * which will be called by the event loop thread