summaryrefslogtreecommitdiff
path: root/src/core/manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/manager.h')
-rw-r--r--src/core/manager.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/core/manager.h b/src/core/manager.h
index 358aba7ff9..948ea98a45 100644
--- a/src/core/manager.h
+++ b/src/core/manager.h
@@ -96,7 +96,14 @@ struct Manager {
sd_event *event;
- Hashmap *watch_pids; /* pid => Unit object n:1 */
+ /* We use two hash tables here, since the same PID might be
+ * watched by two different units: once the unit that forked
+ * it off, and possibly a different unit to which it was
+ * joined as cgroup member. Since we know that it is either
+ * one or two units for each PID we just use to hashmaps
+ * here. */
+ Hashmap *watch_pids1; /* pid => Unit object n:1 */
+ Hashmap *watch_pids2; /* pid => Unit object n:1 */
sd_event_source *run_queue_event_source;