]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev: drop unnecessary calls of event_queue_start() 24442/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 25 Aug 2022 15:34:15 +0000 (00:34 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 25 Aug 2022 15:40:57 +0000 (00:40 +0900)
As the subsequent call of on_post() will call it if necessary.

This also drop unnecessary call of event_source_disable() for killing
idle workers, as the event source is disabled in event_queue_start().

src/udev/udevd.c

index bbda015250330ab8889726841a4689871f43479f..028492721e5f2b578742ef6dbc9f790cedde0a9a 100644 (file)
@@ -1175,9 +1175,6 @@ static int on_uevent(sd_device_monitor *monitor, sd_device *dev, void *userdata)
 
         (void) event_queue_assume_block_device_unlocked(manager, dev);
 
-        /* we have fresh events, try to schedule them */
-        event_queue_start(manager);
-
         return 1;
 }
 
@@ -1244,9 +1241,6 @@ static int on_worker(sd_event_source *s, int fd, uint32_t revents, void *userdat
                 event_free(worker->event);
         }
 
-        /* we have free workers, try to schedule events */
-        event_queue_start(manager);
-
         return 1;
 }
 
@@ -1472,10 +1466,6 @@ static int on_inotify(sd_event_source *s, int fd, uint32_t revents, void *userda
 
         assert(manager);
 
-        r = event_source_disable(manager->kill_workers_event);
-        if (r < 0)
-                log_warning_errno(r, "Failed to disable event source for cleaning up idle workers, ignoring: %m");
-
         l = read(fd, &buffer, sizeof(buffer));
         if (l < 0) {
                 if (ERRNO_IS_TRANSIENT(errno))
@@ -1535,7 +1525,6 @@ static int on_sigchld(sd_event_source *s, const siginfo_t *si, void *userdata) {
         Manager *manager = ASSERT_PTR(worker->manager);
         sd_device *dev = worker->event ? ASSERT_PTR(worker->event->dev) : NULL;
         EventResult result;
-        int r;
 
         assert(si);
 
@@ -1571,16 +1560,6 @@ static int on_sigchld(sd_event_source *s, const siginfo_t *si, void *userdata) {
 
         worker_free(worker);
 
-        /* we can start new workers, try to schedule events */
-        event_queue_start(manager);
-
-        /* Disable unnecessary cleanup event */
-        if (hashmap_isempty(manager->workers)) {
-                r = event_source_disable(manager->kill_workers_event);
-                if (r < 0)
-                        log_warning_errno(r, "Failed to disable event source for cleaning up idle workers, ignoring: %m");
-        }
-
         return 1;
 }