]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udevadm: drop udev_queue
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 14 Dec 2020 09:25:27 +0000 (18:25 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 15 Dec 2020 17:31:30 +0000 (02:31 +0900)
src/udev/udevadm-settle.c

index 2bd5853553784b433fdf74b10ade0562311149a8..ee10e1c3453b4e8bd690ed7db1e7d94d61a8324e 100644 (file)
 #include "sd-messages.h"
 
 #include "bus-util.h"
+#include "fd-util.h"
 #include "io-util.h"
 #include "libudev-util.h"
 #include "string-util.h"
 #include "strv.h"
 #include "time-util.h"
 #include "udev-ctrl.h"
+#include "udev-util.h"
 #include "udevadm.h"
 #include "unit-def.h"
 #include "util.h"
@@ -158,9 +160,9 @@ static int emit_deprecation_warning(void) {
 }
 
 int settle_main(int argc, char *argv[], void *userdata) {
-        _cleanup_(udev_queue_unrefp) struct udev_queue *queue = NULL;
+        _cleanup_close_ int fd = -1;
         usec_t deadline;
-        int r, fd;
+        int r;
 
         r = parse_argv(argc, argv);
         if (r <= 0)
@@ -190,11 +192,7 @@ int settle_main(int argc, char *argv[], void *userdata) {
                 }
         }
 
-        queue = udev_queue_new(NULL);
-        if (!queue)
-                return log_error_errno(errno, "Failed to get udev queue: %m");
-
-        fd = udev_queue_get_fd(queue);
+        fd = udev_queue_init();
         if (fd < 0) {
                 log_debug_errno(fd, "Queue is empty, nothing to watch: %m");
                 return 0;
@@ -207,7 +205,10 @@ int settle_main(int argc, char *argv[], void *userdata) {
                         return 0;
 
                 /* exit if queue is empty */
-                if (udev_queue_get_queue_is_empty(queue))
+                r = udev_queue_is_empty();
+                if (r < 0)
+                        return log_error_errno(r, "Failed to check queue is empty: %m");
+                if (r > 0)
                         return 0;
 
                 if (now(CLOCK_MONOTONIC) >= deadline)
@@ -218,7 +219,7 @@ int settle_main(int argc, char *argv[], void *userdata) {
                 if (r < 0)
                         return r;
                 if (r & POLLIN) {
-                        r = udev_queue_flush(queue);
+                        r = flush_fd(fd);
                         if (r < 0)
                                 return log_error_errno(r, "Failed to flush queue: %m");
                 }