summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/scheduler.h
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2019-09-10 11:04:40 -0400
committerGravatar FernandoS272019-10-15 11:55:14 -0400
commitb49c0dab8772afb06358e5d19af092226b3a59bb (patch)
tree00e1cad505f915f5d7d286c5627b8e13f5eb78ff /src/core/hle/kernel/scheduler.h
parentScheduler: Add protections for Yield bombing (diff)
downloadyuzu-b49c0dab8772afb06358e5d19af092226b3a59bb.tar.gz
yuzu-b49c0dab8772afb06358e5d19af092226b3a59bb.tar.xz
yuzu-b49c0dab8772afb06358e5d19af092226b3a59bb.zip
Kernel: Initial implementation of thread preemption.
Diffstat (limited to 'src/core/hle/kernel/scheduler.h')
-rw-r--r--src/core/hle/kernel/scheduler.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/hle/kernel/scheduler.h b/src/core/hle/kernel/scheduler.h
index 8fcc86bae..c13a368fd 100644
--- a/src/core/hle/kernel/scheduler.h
+++ b/src/core/hle/kernel/scheduler.h
@@ -133,6 +133,8 @@ public:
133 */ 133 */
134 bool YieldThreadAndWaitForLoadBalancing(Thread* thread); 134 bool YieldThreadAndWaitForLoadBalancing(Thread* thread);
135 135
136 void PreemptThreads();
137
136 u32 CpuCoresCount() const { 138 u32 CpuCoresCount() const {
137 return NUM_CPU_CORES; 139 return NUM_CPU_CORES;
138 } 140 }
@@ -153,6 +155,8 @@ private:
153 std::array<Common::MultiLevelQueue<Thread*, THREADPRIO_COUNT>, NUM_CPU_CORES> suggested_queue; 155 std::array<Common::MultiLevelQueue<Thread*, THREADPRIO_COUNT>, NUM_CPU_CORES> suggested_queue;
154 std::atomic<bool> reselection_pending; 156 std::atomic<bool> reselection_pending;
155 157
158 std::array<u64, NUM_CPU_CORES> preemption_priorities = {59, 59, 59, 62};
159
156 /// Lists all thread ids that aren't deleted/etc. 160 /// Lists all thread ids that aren't deleted/etc.
157 std::vector<SharedPtr<Thread>> thread_list; 161 std::vector<SharedPtr<Thread>> thread_list;
158 Core::System& system; 162 Core::System& system;