summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/kernel/time_manager.cpp4
-rw-r--r--src/core/hle/kernel/time_manager.h2
2 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 ea9089ff8..caf329bfb 100644
--- a/src/core/hle/kernel/time_manager.cpp
+++ b/src/core/hle/kernel/time_manager.cpp
@@ -32,6 +32,7 @@ TimeManager::TimeManager(Core::System& system_) : system{system_} {
32} 32}
33 33
34void TimeManager::ScheduleTimeEvent(Handle& event_handle, Thread* timetask, s64 nanoseconds) { 34void TimeManager::ScheduleTimeEvent(Handle& event_handle, Thread* timetask, s64 nanoseconds) {
35 std::lock_guard lock{mutex};
35 event_handle = timetask->GetGlobalHandle(); 36 event_handle = timetask->GetGlobalHandle();
36 if (nanoseconds > 0) { 37 if (nanoseconds > 0) {
37 ASSERT(timetask); 38 ASSERT(timetask);
@@ -46,6 +47,7 @@ void TimeManager::ScheduleTimeEvent(Handle& event_handle, Thread* timetask, s64
46} 47}
47 48
48void TimeManager::UnscheduleTimeEvent(Handle event_handle) { 49void TimeManager::UnscheduleTimeEvent(Handle event_handle) {
50 std::lock_guard lock{mutex};
49 if (event_handle == InvalidHandle) { 51 if (event_handle == InvalidHandle) {
50 return; 52 return;
51 } 53 }
@@ -54,7 +56,7 @@ void TimeManager::UnscheduleTimeEvent(Handle event_handle) {
54} 56}
55 57
56void TimeManager::CancelTimeEvent(Thread* time_task) { 58void TimeManager::CancelTimeEvent(Thread* time_task) {
57 Handle event_handle = time_task->GetGlobalHandle(); 59 const Handle event_handle = time_task->GetGlobalHandle();
58 UnscheduleTimeEvent(event_handle); 60 UnscheduleTimeEvent(event_handle);
59} 61}
60 62
diff --git a/src/core/hle/kernel/time_manager.h b/src/core/hle/kernel/time_manager.h
index 307a18765..f39df39a0 100644
--- a/src/core/hle/kernel/time_manager.h
+++ b/src/core/hle/kernel/time_manager.h
@@ -5,6 +5,7 @@
5#pragma once 5#pragma once
6 6
7#include <memory> 7#include <memory>
8#include <mutex>
8#include <unordered_map> 9#include <unordered_map>
9 10
10#include "core/hle/kernel/object.h" 11#include "core/hle/kernel/object.h"
@@ -42,6 +43,7 @@ private:
42 Core::System& system; 43 Core::System& system;
43 std::shared_ptr<Core::Timing::EventType> time_manager_event_type; 44 std::shared_ptr<Core::Timing::EventType> time_manager_event_type;
44 std::unordered_map<Handle, bool> cancelled_events; 45 std::unordered_map<Handle, bool> cancelled_events;
46 std::mutex mutex;
45}; 47};
46 48
47} // namespace Kernel 49} // namespace Kernel