Evgeny Repekto wrote:
> Some days ago I asked about Xlib async error. It seems I solve the
> problem but in one point I'm still getting dead lock. Is it critical
> to put
> g_thread_init(NULL);
> gdk_threads_init();
> before
> Gtk::Main Kit(argc, argv); ?
>
> What I have now is:
> Gtk::Main mKit(argc, argv); //<--- this is first
> g_thread_init(NULL);
> gdk_threads_init();
> gdk_threads_enter();
> Gtk::Main::run(mMainWindow);
> gdk_threads_leave();
The gtkmm documentation says to do the following before using any
thread-related
facilities:
if(!Glib::thread_supported())
Glib::thread_init();
This has worked fine for me. It happens to be in my main window's constructor
in
my current project, but it's probably not a bad idea to put it at the start of
main() if your application is always going to make use of threads.
Make sure you use the Glib::Mutex/Glib::RecMutex and their nested Lock classes
to best avoid problems such as dead-lock. Using scope/RAII to control locking
is
much safer than using general lock/unlock functions from any threads framework.
Edd
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list