diff options
author | bunnei <bunneidev@gmail.com> | 2023-01-18 15:13:38 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-18 15:13:38 -0800 |
commit | 413df0811d589fb147f24e29caab5285d62e1a6a (patch) | |
tree | fcd0e4cb6696dfc1964d3169a7db1a63348efdbf /src/core/hle | |
parent | 82e2ac60267f09329687854ec7cf0260509679d7 (diff) | |
parent | 0953cdd271c0a62a9b336e66fa2d5583a633746f (diff) |
Merge pull request #9619 from liamwhite/timing-spaghetti
timing: wait for completion on unregister
Diffstat (limited to 'src/core/hle')
-rw-r--r-- | src/core/hle/kernel/k_hardware_timer.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/hle/kernel/k_hardware_timer.cpp b/src/core/hle/kernel/k_hardware_timer.cpp index 6bba79ea0..4dcd53821 100644 --- a/src/core/hle/kernel/k_hardware_timer.cpp +++ b/src/core/hle/kernel/k_hardware_timer.cpp @@ -18,7 +18,8 @@ void KHardwareTimer::Initialize() { } void KHardwareTimer::Finalize() { - this->DisableInterrupt(); + m_kernel.System().CoreTiming().UnscheduleEvent(m_event_type, reinterpret_cast<uintptr_t>(this)); + m_wakeup_time = std::numeric_limits<s64>::max(); m_event_type.reset(); } @@ -59,7 +60,8 @@ void KHardwareTimer::EnableInterrupt(s64 wakeup_time) { } void KHardwareTimer::DisableInterrupt() { - m_kernel.System().CoreTiming().UnscheduleEvent(m_event_type, reinterpret_cast<uintptr_t>(this)); + m_kernel.System().CoreTiming().UnscheduleEventWithoutWait(m_event_type, + reinterpret_cast<uintptr_t>(this)); m_wakeup_time = std::numeric_limits<s64>::max(); } |