diff options
author | Liam <byteslice@airmail.cc> | 2022-12-18 22:50:02 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2022-12-19 02:21:24 +0100 |
commit | c770f25ccb4755f6a6861037fbfdfdac55191348 (patch) | |
tree | eccc5140afa7a979800e8c27c1f4a2847adb283f /src/core/hle/kernel/time_manager.cpp | |
parent | kernel: add KHardwareTimer (diff) | |
download | yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar.gz yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar.bz2 yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar.lz yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar.xz yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar.zst yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.zip |
Diffstat (limited to 'src/core/hle/kernel/time_manager.cpp')
-rw-r--r-- | src/core/hle/kernel/time_manager.cpp | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/src/core/hle/kernel/time_manager.cpp b/src/core/hle/kernel/time_manager.cpp deleted file mode 100644 index 5ee72c432..000000000 --- a/src/core/hle/kernel/time_manager.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#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" - -namespace Kernel { - -TimeManager::TimeManager(Core::System& system_) : system{system_} { - time_manager_event_type = Core::Timing::CreateEvent( - "Kernel::TimeManagerCallback", - [this](std::uintptr_t thread_handle, s64 time, - std::chrono::nanoseconds) -> std::optional<std::chrono::nanoseconds> { - KThread* thread = reinterpret_cast<KThread*>(thread_handle); - { - KScopedSchedulerLock sl(system.Kernel()); - thread->OnTimer(); - } - return std::nullopt; - }); -} - -void TimeManager::ScheduleTimeEvent(KThread* thread, s64 nanoseconds) { - std::scoped_lock lock{mutex}; - if (nanoseconds > 0) { - ASSERT(thread); - ASSERT(thread->GetState() != ThreadState::Runnable); - system.CoreTiming().ScheduleEvent(std::chrono::nanoseconds{nanoseconds}, - time_manager_event_type, - reinterpret_cast<uintptr_t>(thread)); - } -} - -void TimeManager::UnscheduleTimeEvent(KThread* thread) { - std::scoped_lock lock{mutex}; - system.CoreTiming().UnscheduleEvent(time_manager_event_type, - reinterpret_cast<uintptr_t>(thread)); -} - -} // namespace Kernel |