From: Yu Watanabe Date: Wed, 20 Sep 2023 02:32:27 +0000 (+0900) Subject: sd-event: drop unnecessary call of sd_event_now() when requested relative time is... X-Git-Tag: v255-rc1~471 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=afb81a0c05da4aeea9d1cecfc016932182769b5e;p=thirdparty%2Fsystemd.git sd-event: drop unnecessary call of sd_event_now() when requested relative time is zero --- 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) {