Re: strange deadlock ...



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]