timer: convert property_get_next_elapse_monotonic() to use usec_shift_clock()
Let's use the generic clock shifting logic here.
This commit is contained in:
+3
-17
@@ -144,28 +144,14 @@ static int property_get_next_elapse_monotonic(
|
||||
sd_bus_error *error) {
|
||||
|
||||
Timer *t = userdata;
|
||||
usec_t x;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(t);
|
||||
|
||||
if (t->next_elapse_monotonic_or_boottime <= 0)
|
||||
x = 0;
|
||||
else if (t->wake_system) {
|
||||
usec_t a, b;
|
||||
|
||||
a = now(CLOCK_MONOTONIC);
|
||||
b = now(clock_boottime_or_monotonic());
|
||||
|
||||
if (t->next_elapse_monotonic_or_boottime + a > b)
|
||||
x = t->next_elapse_monotonic_or_boottime + a - b;
|
||||
else
|
||||
x = 0;
|
||||
} else
|
||||
x = t->next_elapse_monotonic_or_boottime;
|
||||
|
||||
return sd_bus_message_append(reply, "t", x);
|
||||
return sd_bus_message_append(reply, "t",
|
||||
(uint64_t) usec_shift_clock(t->next_elapse_monotonic_or_boottime,
|
||||
TIMER_MONOTONIC_CLOCK(t), CLOCK_MONOTONIC));
|
||||
}
|
||||
|
||||
const sd_bus_vtable bus_timer_vtable[] = {
|
||||
|
||||
@@ -78,6 +78,8 @@ struct Timer {
|
||||
char *stamp_path;
|
||||
};
|
||||
|
||||
#define TIMER_MONOTONIC_CLOCK(t) ((t)->wake_system && clock_boottime_supported() ? CLOCK_BOOTTIME_ALARM : CLOCK_MONOTONIC)
|
||||
|
||||
void timer_free_values(Timer *t);
|
||||
|
||||
extern const UnitVTable timer_vtable;
|
||||
|
||||
Reference in New Issue
Block a user