From: msizanoen Date: Wed, 12 Feb 2025 15:09:01 +0000 (+0700) Subject: login: Continue watching leader pidfd after stop X-Git-Tag: v258-rc1~1353^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2a4109031c1bd79c498f8642df150deeebe1708;p=thirdparty%2Fsystemd.git login: Continue watching leader pidfd after stop This ensures that garbage collection will be triggered when the leader process dies. --- diff --git a/src/login/logind-session.c b/src/login/logind-session.c index e8c3ae621b2..60f3d6e3bb8 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -91,6 +91,9 @@ static int session_dispatch_leader_pidfd(sd_event_source *es, int fd, uint32_t r Session *s = ASSERT_PTR(userdata); assert(s->leader.fd == fd); + + s->leader_pidfd_event_source = sd_event_source_unref(s->leader_pidfd_event_source); + session_stop(s, /* force= */ false); return 1; @@ -959,7 +962,6 @@ int session_stop(Session *s, bool force) { return 0; s->timer_event_source = sd_event_source_unref(s->timer_event_source); - s->leader_pidfd_event_source = sd_event_source_unref(s->leader_pidfd_event_source); if (s->seat) seat_evict_position(s->seat, s);