udev: do not use sd_event_source_disable_unref() at more places

Fixes a bug introduced by 9612da361a.

Follow-up for f777e745a7.
This commit is contained in:
Yu Watanabe 2022-03-31 02:04:44 +09:00
parent fb54461717
commit 72151060e8
2 changed files with 6 additions and 4 deletions

View file

@ -101,7 +101,7 @@ static void udev_ctrl_disconnect(UdevCtrl *uctrl) {
if (!uctrl)
return;
uctrl->event_source_connect = sd_event_source_disable_unref(uctrl->event_source_connect);
uctrl->event_source_connect = sd_event_source_unref(uctrl->event_source_connect);
uctrl->sock_connect = safe_close(uctrl->sock_connect);
}
@ -110,7 +110,7 @@ static UdevCtrl *udev_ctrl_free(UdevCtrl *uctrl) {
udev_ctrl_disconnect(uctrl);
sd_event_source_disable_unref(uctrl->event_source);
sd_event_source_unref(uctrl->event_source);
safe_close(uctrl->sock);
sd_event_unref(uctrl->event);

View file

@ -178,8 +178,10 @@ static Event *event_free(Event *event) {
LIST_REMOVE(event, event->manager->events, event);
sd_device_unref(event->dev);
sd_event_source_disable_unref(event->timeout_warning_event);
sd_event_source_disable_unref(event->timeout_event);
/* Do not use sd_event_source_disable_unref() here, as this is called by both workers and the
* main process. */
sd_event_source_unref(event->timeout_warning_event);
sd_event_source_unref(event->timeout_event);
if (event->worker)
event->worker->event = NULL;