Re: How does dbus-daemon handle multiple services with same Name?
Lennart Poettering <[email protected]>
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Message-ID | <20150621184224.GB4460@gardel-login> |
On Sun, 21.06.15 13:02, Armin K. ([email protected]) wrote: > Hi, > > While trying kdbus with systemd, I have ran across a problem. > Apparently it doesn't yet properly handle multiple D-Bus services > with same name. > > I'm interested in how does D-Bus daemon handle this? Which one > gets loaded and how it decides which one to load? > > An example: > > I have two services with Name=org.freedesktop.FileManager1 > > One is GNOME's Nautilus, other is MATE's Caja File Manager. > Which one would get loaded and why? Only one service can own a name at a time. If one already owns a name, and another one tries to take possession of it as well, then one of three things can happen: a) the request to own the name is queued, and dbus-daemon passes it on automatically and atomically as soon as the old owner voluntarily gives it up. b) the operation to request the name will simply fail (this mode of operation you get by passing DBUS_NAME_FLAG_DO_NOT_QUEUE when acquiring the name) c) the name will be taken away forcible from the old owner (only if the new owner indicated DBUS_NAME_FLAG_REPLACE_EXISTING, and the old one DBUS_NAME_FLAG_ALLOW_REPLACEMENT). Either way, and no times there are two owners of a name at the same time, neither in kdbus, nor in dbus-daemon. Lennart -- Lennart Poettering, Red Hat _______________________________________________ dbus mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/dbus