diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index df48b3ce04..bdede44df3 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -2139,12 +2139,9 @@ static sd_event_source* event_source_free(sd_event_source *s) { * we still retain a valid event source object after * the callback. */ - if (s->dispatching) { - if (s->type == SOURCE_IO) - source_io_unregister(s); - + if (s->dispatching) source_disconnect(s); - } else + else source_free(s); return NULL;