diff --git a/src/core/unit.c b/src/core/unit.c index 1dea0db3fe..07ec132f30 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2978,16 +2978,8 @@ int unit_enqueue_rewatch_pids(Unit *u) { } void unit_dequeue_rewatch_pids(Unit *u) { - int r; assert(u); - if (!u->rewatch_pids_event_source) - return; - - r = sd_event_source_set_enabled(u->rewatch_pids_event_source, SD_EVENT_OFF); - if (r < 0) - log_warning_errno(r, "Failed to disable event source for tidying watched PIDs, ignoring: %m"); - u->rewatch_pids_event_source = sd_event_source_disable_unref(u->rewatch_pids_event_source); } diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index a1305ef014..2388ebe635 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -474,8 +474,13 @@ _public_ sd_event* sd_event_unref(sd_event *e) { _unused_ _cleanup_(sd_event_unrefp) sd_event *_ref = sd_event_ref(e); _public_ sd_event_source* sd_event_source_disable_unref(sd_event_source *s) { - if (s) - (void) sd_event_source_set_enabled(s, SD_EVENT_OFF); + int r; + + r = sd_event_source_set_enabled(s, SD_EVENT_OFF); + if (r < 0) + log_debug_errno(r, "Failed to disable event source %p (%s): %m", + s, strna(s->description)); + return sd_event_source_unref(s); }