hal_initialize() overrides other filter/object/fallback
functions on separate connection
David Zeuthen
david at fubar.dk
Mon Aug 2 17:00:59 PDT 2004
On Tue, 2004-08-03 at 01:00 +0200, Olivier Andrieu wrote:
> > > Seems to be a dbus problem?
> > >
> >
> > I think this is an issue with D-BUS, yes, why would the filter
> > function in the DBusConnection from libhal receive messages bound
> > for the DBusConnection made in your main application?
>
> Well, when you call dbus_bus_get(DBUS_BUS_SYSTEM) several times, it
> opens the connection the first time but then it just _ref() it.
Hey, guess I just should have read the documentation :-).
However, I'm not convinced, though, that this behavior is always desired
considering that the DBusConnection's got state; e.g. you subscribe to
signals on a per-connection basis.
So, in particular, this is bad if you have several (distant) parts of
the same process communicating with the same D-BUS service in the other
end. With distant I mean that the different parts of the process are not
necessarily aware of each other (think processes that dlopen() stuff)
and that the process per se isn't written to use D-BUS.
So it would be nice to have a dbus_bus_get_no_recycle() function,
however, I'm sure the name of the function can be improved.
> You
> can't open it several times anyway, it's just one
> /var/run/dbus/system_bus_socket.
Hmm, why is that? AFAICT this is plain UNIX domain sockets. And I'm sure
that platforms lacking UNIX domain sockets got similar mechanisms.
Cheers,
David
_______________________________________________
hal mailing list
hal at freedesktop.org
http://freedesktop.org/mailman/listinfo/hal
More information about the Hal
mailing list