Comment 12 for bug 1876609

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

Ok, no idea what exactly has changed and where, but I think problem is in applet...

Check AppletGnome::update, it tries to lock mutex. So I guess it is indication that function is called from multiple threads.

Then multiple files / places has this:
gdk_threads_enter();
biff_->applet()->update();
gdk_threads_leave();

https://developer.gnome.org/gdk3/stable/gdk3-Threads.html
It says that GTK should be used from thread that called gtk_init and gtk_main.

I guess there is no code in panel or any other place that calls gdk_threads_init. If that is true then gdk_threads_enter and gdk_threads_leave does nothing. Quick test could be to rebuild panel by adding gdk_threads_init before gtk_init.

Real fix would be to update applet/gnubiff to not use GTK from other threads... Maybe AppletGnome::update could use g_idle_add to add callback that will be called in main thread?