bug (?) in libbonobo that is breaking evolution
- From: Jon Trowbridge <trow ximian com>
- To: gnome-components-list gnome org
- Subject: bug (?) in libbonobo that is breaking evolution
- Date: 07 Sep 2001 22:27:53 -0500
In the evolution addressbook, we've been plagued by 100%-cpu-sucking
lock-ups. I've traced the problem to a race condition in which horrible
things happen when impl_Bonobo_Control_realize gets called at a
particularly inopportune time.[1]
We are spinlocking somewhere inside of the gtk_events_pending() call in:
if (!control->priv->is_local) {
while (gtk_events_pending ())
gtk_main_iteration ();
gdk_flush ();
}
(this is from bonobo/bonobo-control.c, around line 460)
at the bottom of a long, convoluted stack trace. If I comment this code
out, the problem disappears without any obvious adverse effects.
I'm a bit confused by the fact that is_local must be false when this
happens, since my factory and the embedding app are always both running
on the same machine. Is this the meta-bug (i.e.
bonobo_gtk_widget_from_x11_id is failing to correctly distinguish
between the local and the remote case), or have I totally misunderstood
what is going on here?
Any insights are greatly appreciated.
Thanks,
-JT
[1] To be specific, during event processing that occurs inside of a call
to bonobo_ref that occurs during a signal emission from inside of
an idle function...
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]