udevadm: drop udev_queue

This commit is contained in:
Yu Watanabe 2020-12-14 18:25:27 +09:00
parent bee33d0527
commit b653abbb1a
1 changed files with 10 additions and 9 deletions

View File

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