The mutex locks/unlocks are only in a secondary thread and an idle
function.  I assume there's no problems with idle functions using
mutexes?

There is no problem provided that any mutex acquired by the idle function does not block (it immediately acquires), or if it does block then it only does so transiently. If the secondary thread undertakes a lengthy operation holding a lock which the idle function may also want to acquire, then there is a bottleneck in the code. If at the same time the secondary thread is waiting for the idle handler to complete, there is a deadlock.

In my case the secondary thread adds the idle function and then waits (via GCond) for it to finish. The idle function consists of a simple modal dialog.

The important point in looking at out-of-order locking (or other locking issues) is that the idle handler runs in the thread in which the main program loop runs, not the thread which called g_idle_add()/ g_idle_add_full(), and that it runs at a time not of that calling thread's choosing.

I don't quite understand this. Don't all idle functions run in the main program loop thread?

--
Marshall Lake -- ml...@mlake.net -- http://mlake.net
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to