forked from vitalif/vitastor
Fix timerfd_manager: remove timer, then call callback
parent
9d22559bcf
commit
7cf71a8031
|
@ -150,7 +150,6 @@ void timerfd_manager_t::set_wait()
|
||||||
read(timerfd, &n, 8);
|
read(timerfd, &n, 8);
|
||||||
if (nearest >= 0)
|
if (nearest >= 0)
|
||||||
{
|
{
|
||||||
timers[nearest].callback(timers[nearest].id);
|
|
||||||
if (!timers[nearest].repeat)
|
if (!timers[nearest].repeat)
|
||||||
{
|
{
|
||||||
timers.erase(timers.begin()+nearest, timers.begin()+nearest+1);
|
timers.erase(timers.begin()+nearest, timers.begin()+nearest+1);
|
||||||
|
@ -159,6 +158,7 @@ void timerfd_manager_t::set_wait()
|
||||||
{
|
{
|
||||||
inc_timer(timers[nearest]);
|
inc_timer(timers[nearest]);
|
||||||
}
|
}
|
||||||
|
timers[nearest].callback(timers[nearest].id);
|
||||||
nearest = -1;
|
nearest = -1;
|
||||||
}
|
}
|
||||||
wait_state = 0;
|
wait_state = 0;
|
||||||
|
|
Loading…
Reference in New Issue