diff --git a/Kernel/TimerQueue.cpp b/Kernel/TimerQueue.cpp index fedba303f8c6fd..59910c1fb5f0b2 100644 --- a/Kernel/TimerQueue.cpp +++ b/Kernel/TimerQueue.cpp @@ -137,12 +137,12 @@ void TimerQueue::add_timer_locked(NonnullRefPtr timer) } } -TimerId TimerQueue::add_timer(clockid_t clock_id, timeval& deadline, Function&& callback) +TimerId TimerQueue::add_timer(clockid_t clock_id, const Time& deadline, Function&& callback) { // FIXME: Should use AK::Time internally - auto expires = TimeManagement::the().current_time(clock_id).value(); - timespec_add_timeval(expires, deadline, expires); - return add_timer(adopt(*new Timer(clock_id, Time::from_timespec(expires), move(callback)))); + auto expires = Time::from_timespec(TimeManagement::the().current_time(clock_id).value()); + expires = expires + deadline; + return add_timer(adopt(*new Timer(clock_id, expires, move(callback)))); } bool TimerQueue::cancel_timer(TimerId id) diff --git a/Kernel/TimerQueue.h b/Kernel/TimerQueue.h index ea3b3bf88e5d0a..63f425d3d09693 100644 --- a/Kernel/TimerQueue.h +++ b/Kernel/TimerQueue.h @@ -93,7 +93,7 @@ class TimerQueue { TimerId add_timer(NonnullRefPtr&&); RefPtr add_timer_without_id(clockid_t, const Time&, Function&&); - TimerId add_timer(clockid_t, timeval& timeout, Function&& callback); + TimerId add_timer(clockid_t, const Time& timeout, Function&& callback); bool cancel_timer(TimerId id); bool cancel_timer(Timer&); bool cancel_timer(NonnullRefPtr&& timer)