Comment 6 for bug 588007

Revision history for this message
JKL (jkl102001) wrote :

The software doesn't use GTK locking properly, and it doesn't appear to be maintained upstream (last release 2005). Here is my initial effort at a patch (minimally tested). It fixes this bug, but it is possible that it may introduce new bugs due to lock contention (i.e. calling gdk_threads_enter() twice). The patch is against the Ubuntu bzr sources, and it was generated using bzr diff.

In order for the patch to be correct, I need to prove that gdk_threads_enter() gets called exactly once before each group of GTK/GDK operations, and gdk_threads_leave() gets called exactly once after. So far that hasn't been especially easy to prove, because there are a lot of different threads. Also there is a whole UI abstraction layer to deal with due to the dual GTK/ncurses frontends.