Fix timerfd_manager: remove timer, then call callback

trace-sqes
Vitaliy Filippov 2020-04-21 12:45:18 +03:00
parent 9d22559bcf
commit 7cf71a8031
1 changed files with 1 additions and 1 deletions

View File

@ -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;