Re: Control lifecycle thoughts ... thanks.



on 10/28/01 6:13 PM, Michael Meeks at michael ximian com wrote:

>       Good point - the broken signal can happen anytime, during the
> linc mainloop - so we need to delay any destruction logic to a glib
> idle handler. I've updated the document here, and the re-write is well
> underway.

Back when I was working on a proposal to fix this, I was reluctant to do the
"delay until idle" because I was worried that dead objects could accumulate
if you didn't return to the main loop for a while. But I don't really know
of an alternative.

Some other thoughts:

Is there another issue with the fact that any particular call on the
Bonobo_ControlFrame (or the UIContainer, or any other "other-side" object)
might be the first call to be made after the thing disappeared? That means
that all calls to Bonobo_ControlFrame must be prepared for failure, even
ones that normally would fail for no other reason. And that propagates to
the callers that are doing things that seem innocuous -- this might require
more changes to Bonobo and to Bonobo clients.

One other note. There was a race condition that could happen in Nautilus
when I added the code to self-destruct on the next idle after an X window
went away. Owen looked into it; his analysis is at
<http://lists.eazel.com/pipermail/nautilus-list/2001-May/003096.html>. I
later "fixed" this as described in
<http://lists.eazel.com/pipermail/nautilus-list/2001-May/003095.html> by
adding a delay of 1 minute. Not sure if your change is susceptible to the
same problem, but you might want to consider the issue.

    -- Darin




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