Re: strange deadlock ...
- From: Darin Adler <darin bentspoon com>
- To: Michael Meeks <michael ximian com>
- Cc: Havoc Pennington <hp redhat com>, Owen Taylor <otaylor redhat com>, Gtk Development List <gtk-devel-list gnome org>
- Subject: Re: strange deadlock ...
- Date: Tue, 17 Jul 2001 17:38:38 -0700
On Tuesday, July 17, 2001, at 04:58 PM, Michael Meeks wrote:
I appreciate that :-) the thing is, that this is not some whacked
out, unusual race condition - caused by some obscure use of threading,
that will not affect anyone.
On the contrary, it will cripple anyone using threads and Gtk+ eg.
try adding a g_thread_init to gtk-demo, and then pressing "Dialog and
Message Boxes" and then any button [ to cause a re-entering of the glib
mainloop through gtk_dialog_run ].
Bang, deadlock.
But this same syndrome existed in ORBit/gtk+/Bonobo all along. Programs
like Nautilus had to defer work until idle from all incoming CORBA calls
to avoid this kind of problem -- see
nautilus/libnautilus/nautilus-idle-queue.c,
nautilus/libnautilus/nautilus-view.c, and
nautilus/src/nautilus-view-frame-corba.c for specifics. We never did solve
the problem of the incoming unref call from the Bonobo side (like unref)
that we have no way of deferring and other incoming calls from the Control
interface.
I'll be happy to give more details on request. The fact that incoming
CORBA can happen anywhere outgoing CORBA calls are made leads to trouble.
-- Darin
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]