aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/time_manager.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-12-12 22:43:25 -0800
committerGitHub <noreply@github.com>2021-12-12 22:43:25 -0800
commit280c77989880e81f622440b157a0ce1b7139847b (patch)
tree49a3ef8127d721dc44effb8315e5db7e796336f4 /src/core/hle/kernel/time_manager.cpp
parent429320aee8a0beab0081a61e6e3cfbc6bb754db2 (diff)
parent257d3c9ecf2730fad3b68918f108fa652061cabd (diff)
Merge pull request #7462 from bunnei/kernel-improve-scheduling
Kernel: Improve threading & scheduling V3
Diffstat (limited to 'src/core/hle/kernel/time_manager.cpp')
-rw-r--r--src/core/hle/kernel/time_manager.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/hle/kernel/time_manager.cpp b/src/core/hle/kernel/time_manager.cpp
index 8cd7279a3..aa985d820 100644
--- a/src/core/hle/kernel/time_manager.cpp
+++ b/src/core/hle/kernel/time_manager.cpp
@@ -5,6 +5,7 @@
#include "common/assert.h"
#include "core/core.h"
#include "core/core_timing.h"
+#include "core/hle/kernel/k_scheduler.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/kernel/time_manager.h"
@@ -15,7 +16,10 @@ TimeManager::TimeManager(Core::System& system_) : system{system_} {
Core::Timing::CreateEvent("Kernel::TimeManagerCallback",
[this](std::uintptr_t thread_handle, std::chrono::nanoseconds) {
KThread* thread = reinterpret_cast<KThread*>(thread_handle);
- thread->Wakeup();
+ {
+ KScopedSchedulerLock sl(system.Kernel());
+ thread->OnTimer();
+ }
});
}