multithreading and a frozen GDK thread



I'm writing a threaded GTK+ program which works just fine on my system
(Debian 2.2 on i386), but doesn't work at all on Red Hat and reportedly
others.

Whenever a signal handler is called (even something so simple as the
cancel button in the prefs window, which just does a gtk_widget_destroy
on the window), the GTK+ thread is completely unresponsive (widgets fail
to redraw, etc).

gdb says it stalls on pthread_mutex_lock.  I'm guessing this means I
haven't done a gdk_threads_leave() somewhere, but I did a grep and
apparently there's a gdk_threads_leave() for every gdk_threads_enter()
call.  I also scrolled through all the GTK-related code, and it appears
everything is done while obtaining the lock as it should.

And again, it works fine on my Debian system...  it doesn't work on my
friend's Debian system though.  And the only difference between the two
is mine's got a newer glibc, XF86 4.0.1, and kernel 2.4-test8.  And of
course hardware (but still x86), and silly things like window manager
and all that...

Any ideas?

-- 
"It was the first time somebody called me 'sir', without adding, 'you're
making a scene.'"




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]