summaryrefslogtreecommitdiff
path: root/src/core/manager.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-05-28 21:32:03 +0200
committerLennart Poettering <lennart@poettering.net>2018-06-06 10:53:56 +0200
commit7feedd18fa57ba42426dfffd702dfc78ea0c6d7a (patch)
tree9d2bf175734a7a076898b6f6a81373c6a652ba32 /src/core/manager.c
parent1eb54dc6457a5009e04f214e0d24ca00c782c5a5 (diff)
downloadsystemd-7feedd18fa57ba42426dfffd702dfc78ea0c6d7a.tar.gz
core: move destruction of old time event sources to manager_setup_time_change()
It's a bit prettier that day as the function won't silently overwrite any possibly pre-initialized field, and destroy it right before we allocate a new event source.
Diffstat (limited to 'src/core/manager.c')
-rw-r--r--src/core/manager.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index f5664eaa79..3a2674ce93 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -364,6 +364,9 @@ static int manager_setup_time_change(Manager *m) {
if (m->test_run_flags)
return 0;
+ m->time_change_event_source = sd_event_source_unref(m->time_change_event_source);
+ m->time_change_fd = safe_close(m->time_change_fd);
+
/* Uses TFD_TIMER_CANCEL_ON_SET to get notifications whenever
* CLOCK_REALTIME makes a jump relative to CLOCK_MONOTONIC */
@@ -2558,10 +2561,7 @@ static int manager_dispatch_time_change_fd(sd_event_source *source, int fd, uint
LOG_MESSAGE("Time has been changed"));
/* Restart the watch */
- m->time_change_event_source = sd_event_source_unref(m->time_change_event_source);
- m->time_change_fd = safe_close(m->time_change_fd);
-
- manager_setup_time_change(m);
+ (void) manager_setup_time_change(m);
HASHMAP_FOREACH(u, m->units, i)
if (UNIT_VTABLE(u)->time_change)