diff --git a/src/core/libraries/kernel/equeue.cpp b/src/core/libraries/kernel/equeue.cpp index ee9f5600e..237043d40 100644 --- a/src/core/libraries/kernel/equeue.cpp +++ b/src/core/libraries/kernel/equeue.cpp @@ -67,25 +67,24 @@ bool EqueueInternal::ScheduleEvent(u64 id, s16 filter, std::weak_ptr weak_token = m_life_token; - it->timer->async_wait( - [this, event_data = event.event, callback, weak_token](const boost::system::error_code& ec) { + it->timer->async_wait([this, event_data = event.event, callback, + weak_token](const boost::system::error_code& ec) { + // If the token already expires return to avoid calling to callback with an invalid pointer. + if (weak_token.expired()) { + return; + } - // If the token already expires return to avoid calling to callback with an invalid pointer. - if (weak_token.expired()) { - return; + if (ec) { + if (ec != boost::system::errc::operation_canceled) { + LOG_ERROR(Kernel_Event, "Timer callback error: {}", ec.message()); + } else { + // Timer was cancelled (removed) before it triggered + LOG_DEBUG(Kernel_Event, "Timer cancelled"); } - - if (ec) { - if (ec != boost::system::errc::operation_canceled) { - LOG_ERROR(Kernel_Event, "Timer callback error: {}", ec.message()); - } else { - // Timer was cancelled (removed) before it triggered - LOG_DEBUG(Kernel_Event, "Timer cancelled"); - } - return; - } - callback(this, event_data); - }); + return; + } + callback(this, event_data); + }); KernelSignalRequest(); return true;