In FAQ 20.6 I am using a separate thread to run my code, but the
application (or the UI) hangs.

The following text appears.

| John K. Luebs reminds you: *don't forget gtk.threads_enter() and
| gtk.threads_leave()* around mainloop when accessing gtk code if you want
| your application to actually work threaded:
| 
|  gtk.gdk.threads_enter()
|  gtk.main()
|  gtk.gdk.threads_leave()

I think this is wrong although it doesn't seem to hurt.

>From the reference pages I understand that gtk.gdk.threads_init
initializes a lock and that gtk.gdk.threads_enter() acquires
this lock while gtk.gdk.threads_leave() releases it. In any case
it is all about marking critical sections.

Now marking the gtk.main()  as such a critical section would
mean that all other threads wanting to enter a critical section
with gtk.gdk calls would be stopped from doing so until gtk.main
had quit. That seems less than usefull.

-- 
Antoon Pardon
_______________________________________________
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to