Multiple connections to the same bus from the same client
Kay Sievers
kay.sievers at vrfy.org
Tue Sep 28 10:57:49 UTC 2004
On Tue, 2004-09-28 at 03:37 -0500, Jon Trowbridge wrote:
> On Mon, 2004-09-27 at 23:28 +0100, Bastien Nocera wrote:
> > On Tue, 2004-09-28 at 03:46 -0500, Jon Trowbridge wrote:
> > > Is there any scenario in which it would make sense for a single instance
> > > of a application to open multiple simultaneous connections to a bus?
> >
> > Make sense, I don't know, but a GNOME application that uses d-bus for
> > its IPC, has a BaconCdSelection widget (a simple CD device selection
> > widget that uses HAL) and uses the GnomeVFSVolume API (which uses HAL as
> > well) would have 2 connection to the d-bus via HAL and one direct one
> > (possibly not to the system bus though).
>
> This was exactly the sort of case I was worried about when I originally
> posted --- apps ending up with lots of connections to one message bus
> because of libraries.
>
> Fortunately, someone else already had that worry. I just looked at the
> source code, and dbus_bus_get does the right thing: it will return the
> previously-opened connection if you try to connect to the same bus
> multiple times.
Yeah, but be prepared for that "fortune" :). If you have multiple parts
of a process talking through the same socket you get all signals for
both subscriptions, you can't expect to get only the ones you subscribed
to.
And remember not to return DBUS_HANDLER_RESULT_HANDLED cause this will
prevent the delivery to the other part of your process (you may not even
know about that).
There was a long thread about this and I'm still not happy with the
current behavior:
http://freedesktop.org/pipermail/dbus/2004-August/001420.html
Thanks,
Kay
More information about the dbus
mailing list