timesync: several trivial cleanups (#36506)

This commit is contained in:
Lennart Poettering
2025-02-26 09:02:50 +01:00
committed by GitHub
3 changed files with 15 additions and 28 deletions

View File

@@ -1184,22 +1184,24 @@ int manager_setup_save_time_event(Manager *m) {
int r;
assert(m);
assert(!m->event_save_time);
if (m->save_time_interval_usec == USEC_INFINITY)
return 0;
/* NB: we'll accumulate scheduling latencies here, but this doesn't matter */
r = sd_event_add_time_relative(
m->event, &m->event_save_time,
r = event_reset_time_relative(
m->event,
&m->event_save_time,
CLOCK_BOOTTIME,
m->save_time_interval_usec,
10 * USEC_PER_SEC,
manager_save_time_handler, m);
manager_save_time_handler,
m,
SD_EVENT_PRIORITY_NORMAL,
"save-time",
/* force_reset = */ false);
if (r < 0)
return log_error_errno(r, "Failed to add save time event: %m");
(void) sd_event_source_set_description(m->event_save_time, "save-time");
return log_error_errno(r, "Failed to reset event source for saving time: %m");
return 0;
}
@@ -1213,23 +1215,11 @@ static int manager_save_time_and_rearm(Manager *m, usec_t t) {
* clock, but otherwise uses the specified timestamp. Note that whenever we acquire an NTP sync the
* specified timestamp value might be more accurate than the system clock, since the latter is
* subject to slow adjustments. */
r = touch_file(TIMESYNCD_CLOCK_FILE, false, t, UID_INVALID, GID_INVALID, MODE_INVALID);
r = touch_file(TIMESYNCD_CLOCK_FILE, /* parents = */ false, t, UID_INVALID, GID_INVALID, MODE_INVALID);
if (r < 0)
log_debug_errno(r, "Failed to update "TIMESYNCD_CLOCK_FILE", ignoring: %m");
m->save_on_exit = true;
if (m->save_time_interval_usec != USEC_INFINITY) {
r = sd_event_source_set_time_relative(m->event_save_time, m->save_time_interval_usec);
if (r < 0)
return log_error_errno(r, "Failed to rearm save time event: %m");
r = sd_event_source_set_enabled(m->event_save_time, SD_EVENT_ONESHOT);
if (r < 0)
return log_error_errno(r, "Failed to enable save time event: %m");
}
return 0;
return manager_setup_save_time_event(m);
}
static const char* ntp_server_property_name[_SERVER_TYPE_MAX] = {

View File

@@ -112,7 +112,6 @@ struct Manager {
/* save time event */
sd_event_source *event_save_time;
usec_t save_time_interval_usec;
bool save_on_exit;
/* Used to coalesce bus PropertiesChanged events */
sd_event_source *deferred_ntp_server_event_source;

View File

@@ -221,12 +221,10 @@ static int run(int argc, char *argv[]) {
if (r < 0)
return log_error_errno(r, "Failed to run event loop: %m");
/* if we got an authoritative time, store it in the file system */
if (m->save_on_exit) {
r = touch(TIMESYNCD_CLOCK_FILE);
if (r < 0)
log_debug_errno(r, "Failed to touch "TIMESYNCD_CLOCK_FILE", ignoring: %m");
}
/* Save the current time in the file system on exit. */
r = touch(TIMESYNCD_CLOCK_FILE);
if (r < 0)
log_debug_errno(r, "Failed to touch "TIMESYNCD_CLOCK_FILE", ignoring: %m");
return 0;
}