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" |
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 |
|
|
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 |
} |
} |
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 |
|
|
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); |