]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev: do not use sd_event_source_disable_unref() at more places
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 30 Mar 2022 17:04:44 +0000 (02:04 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 30 Mar 2022 20:08:23 +0000 (05:08 +0900)
Fixes a bug introduced by 9612da361a825d70a9fd392f3ee5a53bf8896887.

Follow-up for f777e745a7966ea52ef29f9e4edfdd16874cfe86.

src/udev/udev-ctrl.c
src/udev/udevd.c

index 4913d0262b57fe8cd656b954836e01af6c646708..528641d956375bfd5c09dfd33e47b90f335fcefe 100644 (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);
index 0a888993c864d9ee4b68ef4c86f854dbd5045d2d..1cde6b9c9c05da447572c4d377efc1db1896c0f6 100644 (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;