/[svn]/gigedit/trunk/src/gigedit/gigedit.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/gigedit.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1898 by persson, Sun May 10 09:35:56 2009 UTC revision 2325 by persson, Sun Mar 4 09:01:40 2012 UTC
# Line 19  Line 19 
19    
20  #include "gigedit.h"  #include "gigedit.h"
21    
22  #include <gtkmm/main.h>  #include <glibmm/dispatcher.h>
23  #include <glibmm/main.h>  #include <glibmm/main.h>
24    #include <gtkmm/main.h>
25    
26  #include "mainwindow.h"  #include "mainwindow.h"
27    
28  #include "global.h"  #include "global.h"
# Line 48  private: Line 50  private:
50      class Cond {      class Cond {
51      private:      private:
52          bool pred;          bool pred;
53          Glib::Mutex mutex;          Glib::Threads::Mutex mutex;
54          Glib::Cond cond;          Glib::Threads::Cond cond;
55      public:      public:
56          Cond() : pred(false) { }          Cond() : pred(false) { }
57          void signal() {          void signal() {
58              Glib::Mutex::Lock lock(mutex);              Glib::Threads::Mutex::Lock lock(mutex);
59              pred = true;              pred = true;
60              cond.signal();              cond.signal();
61          }          }
62          void wait() {          void wait() {
63              Glib::Mutex::Lock lock(mutex);              Glib::Threads::Mutex::Lock lock(mutex);
64              while (!pred) cond.wait(mutex);              while (!pred) cond.wait(mutex);
65          }          }
66      };      };
67    
68    #ifdef OLD_THREADS
69      static Glib::StaticMutex mutex;      static Glib::StaticMutex mutex;
70    #else
71        static Glib::Threads::Mutex mutex;
72    #endif
73      static Glib::Dispatcher* dispatcher;      static Glib::Dispatcher* dispatcher;
74      static GigEditState* current;      static GigEditState* current;
75    
# Line 113  void init_app() { Line 119  void init_app() {
119          textdomain(GETTEXT_PACKAGE);          textdomain(GETTEXT_PACKAGE);
120  #endif // HAVE_GETTEXT  #endif // HAVE_GETTEXT
121    
122    #ifdef OLD_THREADS
123          // make sure thread_init() is called once and ONLY once per process          // make sure thread_init() is called once and ONLY once per process
124          if (!Glib::thread_supported()) Glib::thread_init();          if (!Glib::thread_supported()) Glib::thread_init();
125    #endif
126          process_initialized = true;          process_initialized = true;
127      }      }
128  }  }
# Line 249  sigc::signal<void, int/*key*/, int/*velo Line 256  sigc::signal<void, int/*key*/, int/*velo
256      return keyboard_key_released_signal;      return keyboard_key_released_signal;
257  }  }
258    
259    #ifdef OLD_THREADS
260  Glib::StaticMutex GigEditState::mutex = GLIBMM_STATIC_MUTEX_INIT;  Glib::StaticMutex GigEditState::mutex = GLIBMM_STATIC_MUTEX_INIT;
261    #else
262    Glib::Threads::Mutex GigEditState::mutex;
263    #endif
264  Glib::Dispatcher* GigEditState::dispatcher = 0;  Glib::Dispatcher* GigEditState::dispatcher = 0;
265  GigEditState* GigEditState::current = 0;  GigEditState* GigEditState::current = 0;
266    
# Line 294  void GigEditState::run(gig::Instrument* Line 305  void GigEditState::run(gig::Instrument*
305      static bool main_loop_started = false;      static bool main_loop_started = false;
306      if (!main_loop_started) {      if (!main_loop_started) {
307          Cond initialized;          Cond initialized;
308          Glib::Thread::create(          Glib::Threads::Thread::create(
309              sigc::bind(sigc::ptr_fun(&GigEditState::main_loop_run),              sigc::bind(sigc::ptr_fun(&GigEditState::main_loop_run),
310                         &initialized),                         &initialized),
311              false);              false);

Legend:
Removed from v.1898  
changed lines
  Added in v.2325

  ViewVC Help
Powered by ViewVC