Re: D-Bus
- From: Alexander Larsson <alexl redhat com>
- To: Michael Meeks <michael ximian com>
- Cc: Havoc Pennington <hp redhat com>, Sean Middleditch <elanthis awesomeplay com>, GNOME Desktop Hackers <desktop-devel-list gnome org>
- Subject: Re: D-Bus
- Date: Wed, 5 Mar 2003 05:35:21 -0500 (EST)
On 4 Mar 2003, Michael Meeks wrote:
> > Yes, it is true that by using ORBit-specific non-CORBA functionallity you
> > can in fact get connection-based lifetime handling for a simple
> > daemon-style setup (such as a message bus). However, it is much less
> > useful when handling for instance embedded UI components, or any other
> > case where object ownership is "interesting".
>
> Sure - I'm happy to extend the ORBit2 functionality beyond what CORBA
> specifies, that's no real issue. However - you say that the lifecycle
> problem exists - and that it's much less useful for handling embedded UI
> components - and yet you appear to propose no solution - short (I
> imagine) of glupping everything into one big fragile process.
The reason I don't propose a solution is that its a really hard problem,
and I have no good solution to it.
Darin once experimented with changing the distributed refcounts to
object leases. That may be on possible solution, or perhaps its just
changing one set of problems into another set.
At the moment, with what we have now, I think the reasonable thing to do
is to put as much as you can in a single process, and when you need
out-of-process components you need to make the ownership model as simple
as possible. Try to have clean small ownership-webs, with no
back-references. This way it might be possible to use the ORBitConnection
"broken" signal to avoid getting stale processes. Be very careful with
how and when you use Bonobo_Unknown_ref and don't pass object references
around unless you really really need to.
[Warning, personal opinion, Potentialy flame inducing:]
I also want to point out, although I know we disagree on this, that I
think the whole "fragile single process" idea is completely wrong. A
multiple process app is just as fragile. To a user the idea of "only half
the process crashing" is basically the same as the whole app crashing. If
this doesn't make the other half totally confused and crashy it probably
at least makes the app unusable to the user. You might get a chance to
save part of your work, but I wouldn't trust a half-crashed app to save my
data correctly. In practice, we just have to fix all crasher bugs, and
multiple-process app just adds more failure modes.
However, I do think that there are times when out-of-process components
are useful. Such as document embedding in an office suite. I do think its
pretty uncommon for it to be useful though.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Alexander Larsson Red Hat, Inc
alexl redhat com alla lysator liu se
He's a scarfaced skateboarding card sharp for the 21st century. She's a
cold-hearted psychic vampire with the power to bend men's minds. They fight
crime!
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]