summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_worker_task_manager.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-01-15 01:24:59 +0100
committerbunnei <bunneidev@gmail.com>2022-01-15 01:43:59 +0100
commitbf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f (patch)
treecab10043311fb326552461417e7fe7f47e71ff47 /src/core/hle/kernel/k_worker_task_manager.h
parentcommon: fiber: YieldTo: Avoid hard crash on nullptr previous_fiber. (diff)
downloadyuzu-bf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f.tar
yuzu-bf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f.tar.gz
yuzu-bf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f.tar.bz2
yuzu-bf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f.tar.lz
yuzu-bf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f.tar.xz
yuzu-bf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f.tar.zst
yuzu-bf32fcc817a0f3fcbe90e8e5b5ba325ef0480d3f.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/k_worker_task_manager.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/core/hle/kernel/k_worker_task_manager.h b/src/core/hle/kernel/k_worker_task_manager.h
new file mode 100644
index 000000000..43d1bfcec
--- /dev/null
+++ b/src/core/hle/kernel/k_worker_task_manager.h
@@ -0,0 +1,33 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "common/common_types.h"
+#include "common/thread_worker.h"
+
+namespace Kernel {
+
+class KernelCore;
+class KWorkerTask;
+
+class KWorkerTaskManager final {
+public:
+ enum class WorkerType : u32 {
+ Exit,
+ Count,
+ };
+
+ KWorkerTaskManager();
+
+ static void AddTask(KernelCore& kernel_, WorkerType type, KWorkerTask* task);
+
+private:
+ void AddTask(KernelCore& kernel, KWorkerTask* task);
+
+private:
+ Common::ThreadWorker m_waiting_thread;
+};
+
+} // namespace Kernel