On Tue, 2006-01-31 at 18:28 +0100, kornelix wrote: > Following the guidelines in the FAQ, I constructed my application > threads as follows: > > gdk_threads_enter(); // enter thread > (do some work, including GTK calls) > gdk_flush(); // exit thread > gdk_threads_leave(); > return 0; > > Now my multi-threaded application executes its threads one after the > other, instead of in parallel. Apparently the above method introduces a > lock or mutex which allows only one thread at a time to execute. > > Is this a hopeless situation, or is there some other way? > (other than putting all GTK calls in the main program)
Just put the gdk_* threads and flush calls around the actual GTK calls. that way only gui updates themselves are put in mutexes (locked). The way you are currently doing it, your actual business logic ends up in the mutex, and so if it is lengthy, it will block all the other threads. Michael > > thanks, > Mike > > _______________________________________________ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list