From afb81a0c05da4aeea9d1cecfc016932182769b5e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 20 Sep 2023 11:32:27 +0900 Subject: [PATCH] sd-event: drop unnecessary call of sd_event_now() when requested relative time is zero --- src/libsystemd/sd-event/event-util.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/libsystemd/sd-event/event-util.c b/src/libsystemd/sd-event/event-util.c index d93d8865ecf..a3101227af7 100644 --- a/src/libsystemd/sd-event/event-util.c +++ b/src/libsystemd/sd-event/event-util.c @@ -97,16 +97,21 @@ int event_reset_time_relative( const char *description, bool force_reset) { - usec_t usec_now; int r; assert(e); - r = sd_event_now(e, clock, &usec_now); - if (r < 0) - return log_debug_errno(r, "sd-event: Failed to get the current time: %m"); + if (usec > 0) { + usec_t usec_now; + + r = sd_event_now(e, clock, &usec_now); + if (r < 0) + return log_debug_errno(r, "sd-event: Failed to get the current time: %m"); + + usec = usec_add(usec_now, usec); + } - return event_reset_time(e, s, clock, usec_add(usec_now, usec), accuracy, callback, userdata, priority, description, force_reset); + return event_reset_time(e, s, clock, usec, accuracy, callback, userdata, priority, description, force_reset); } int event_add_time_change(sd_event *e, sd_event_source **ret, sd_event_io_handler_t callback, void *userdata) { -- 2.47.3