From 7cf71a80311c891320469bcf526c53ffffa01ca3 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Tue, 21 Apr 2020 12:45:18 +0300 Subject: [PATCH] Fix timerfd_manager: remove timer, then call callback --- timerfd_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/timerfd_manager.cpp b/timerfd_manager.cpp index 6d260c751..7c2f95bf4 100644 --- a/timerfd_manager.cpp +++ b/timerfd_manager.cpp @@ -150,7 +150,6 @@ void timerfd_manager_t::set_wait() read(timerfd, &n, 8); if (nearest >= 0) { - timers[nearest].callback(timers[nearest].id); if (!timers[nearest].repeat) { timers.erase(timers.begin()+nearest, timers.begin()+nearest+1); @@ -159,6 +158,7 @@ void timerfd_manager_t::set_wait() { inc_timer(timers[nearest]); } + timers[nearest].callback(timers[nearest].id); nearest = -1; } wait_state = 0;