Callbacks in timeouts called without GDK lock

Bug #988853 reported by Yehouda
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
overlay-scrollbar
New
Undecided
Unassigned

Bug Description

Callbacks in the overlay scrollbar that are called by timeout are setup by calls
to g_timeout_add, which means that the callbacks are called without GDK lock. This
is a problem because most (or all) of them do GTK operations that require the
GDK lock.

Instead of g_timeout_add, it should use gdk_threads_add_timeout. I didn't
carefully check all the code, but I think all calls to g_timeout_add need changing.

If the code use g_idle_add anywhere, it may need to be fixed (I didn't see any).

We found it because we have multi-threading application, and when using
overlay scrollbar it randomly crashes, so we checked and found it.

We found about LIBOVERLAY_SCROLLBAR, so we set it to 0 now.

Revision history for this message
Yehouda (yeh-lispworks) wrote :

It partly reported in
https://bugs.launchpad.net/ubuntu/+source/overlay-scrollbar/+bug/908618

But the fix there is incorrect. It needs to to use the gdk_threads_* functions.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.