diff --git a/core/sched.cc b/core/sched.cc index 1c23512c0d79be527b2eae6f3ded6ed1da2fce5e..85d36d44372983b54d2d1a4bd797317cfe493a09 100644 --- a/core/sched.cc +++ b/core/sched.cc @@ -1064,10 +1064,11 @@ void timer_base::expire() void timer_base::set(osv::clock::uptime::time_point time) { trace_timer_set(this, time.time_since_epoch().count()); - _state = state::armed; - _time = time; irq_save_lock_type irq_lock; WITH_LOCK(irq_lock) { + _state = state::armed; + _time = time; + auto& timers = cpu::current()->timers; timers._list.insert(*this); _t._active_timers.push_back(*this);