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?
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: enter() ; applet( )->update( ); leave() ;
gdk_threads_
biff_->
gdk_threads_
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?