From bbc2908635ca3ded9162504683fa126809f0ec14 Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Wed, 5 Aug 2015 17:47:45 +0200 Subject: core: dbus: track bus names per unit Currently, PID1 installs an unfiltered NameOwnerChanged signal match, and dispatches the signals itself. This does not scale, as right now, PID1 wakes up every time a bus client connects. To fix this, install individual matches once they are requested by unit_watch_bus_name(), and remove the watches again through their slot in unit_unwatch_bus_name(). If the bus is not available during unit_watch_bus_name(), just store name in the 'watch_bus' hashmap, and let bus_setup_api() do the installing later. --- src/core/manager.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/core/manager.h') diff --git a/src/core/manager.h b/src/core/manager.h index 4ef869d14a..1e01f2bdef 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -329,8 +329,6 @@ int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit); int manager_loop(Manager *m); -void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name, const char* old_owner, const char *new_owner); - int manager_open_serialization(Manager *m, FILE **_f); int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root); -- cgit v1.2.3-54-g00ecf