Hello,

I was hoping somebody could point me in the right direction here.

I have a program with two (p)threads; one thread running the gtk_main()
event loop, and the other thread periodically updating the display in a
gdk_threads_enter() / gdk_threads_leave() block.

When the user presses a key in the event loop thread, the second thread
should die. However this opens up the possibility of deadlock:

thread 1: ---> pthread_cancel(thread 2) ---> pthread_join(thread 2)
thread 2: -----------------> gdk_threads_enter() ------------> deadlock

I can avoid this deadlock when I set the cancel type of the second thread to
PTHREAD_CANCEL_ASYNCHRONOUS, thereby forcing cancellation of the second
thread immediately. But somehow that doesn't seem wise. Can somebody please
advise?

Thanks.
_______________________________________________
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to