From ec75e8e07a0ad972e0c40e0a187e15a8d4fb3d66 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 18 Mar 2022 16:28:38 +0100 Subject: sd-event: add a single implementation of an event source that runs on clock changes We basically had the same code in three places. Let's unify it in a common helper function. event_add_time_change() might be something we should add to the official sd-event API sooner or later, given its general usefulness. --- src/timesync/timesyncd-manager.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'src/timesync/timesyncd-manager.c') diff --git a/src/timesync/timesyncd-manager.c b/src/timesync/timesyncd-manager.c index 3ab08a0fd6..193d13742b 100644 --- a/src/timesync/timesyncd-manager.c +++ b/src/timesync/timesyncd-manager.c @@ -14,6 +14,7 @@ #include "alloc-util.h" #include "dns-domain.h" +#include "event-util.h" #include "fd-util.h" #include "format-util.h" #include "fs-util.h" @@ -229,14 +230,9 @@ static int manager_clock_watch_setup(Manager *m) { assert(m); - m->event_clock_watch = sd_event_source_unref(m->event_clock_watch); - safe_close(m->clock_watch_fd); + m->event_clock_watch = sd_event_source_disable_unref(m->event_clock_watch); - m->clock_watch_fd = time_change_fd(); - if (m->clock_watch_fd < 0) - return log_error_errno(m->clock_watch_fd, "Failed to create timerfd: %m"); - - r = sd_event_add_io(m->event, &m->event_clock_watch, m->clock_watch_fd, EPOLLIN, manager_clock_watch, m); + r = event_add_time_change(m->event, &m->event_clock_watch, manager_clock_watch, m); if (r < 0) return log_error_errno(r, "Failed to create clock watch event source: %m"); @@ -889,8 +885,7 @@ void manager_disconnect(Manager *m) { manager_listen_stop(m); - m->event_clock_watch = sd_event_source_unref(m->event_clock_watch); - m->clock_watch_fd = safe_close(m->clock_watch_fd); + m->event_clock_watch = sd_event_source_disable_unref(m->event_clock_watch); m->event_timeout = sd_event_source_unref(m->event_timeout); @@ -1089,7 +1084,6 @@ int manager_new(Manager **ret) { .connection_retry_usec = DEFAULT_CONNECTION_RETRY_USEC, .server_socket = -1, - .clock_watch_fd = -1, .ratelimit = (RateLimit) { RATELIMIT_INTERVAL_USEC, -- cgit v1.2.1