diff options
author | bunnei <bunneidev@gmail.com> | 2021-11-10 04:02:11 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2021-12-07 01:39:17 +0100 |
commit | bc1399204b914608715306a8a8dbe2f201dd4365 (patch) | |
tree | 7799195284bb20b15cd6be6addea57f45364136f /src/core/hle/kernel/k_thread_queue.h | |
parent | core: hle: kernel: Disable dispatch count tracking on single core. (diff) | |
download | yuzu-bc1399204b914608715306a8a8dbe2f201dd4365.tar yuzu-bc1399204b914608715306a8a8dbe2f201dd4365.tar.gz yuzu-bc1399204b914608715306a8a8dbe2f201dd4365.tar.bz2 yuzu-bc1399204b914608715306a8a8dbe2f201dd4365.tar.lz yuzu-bc1399204b914608715306a8a8dbe2f201dd4365.tar.xz yuzu-bc1399204b914608715306a8a8dbe2f201dd4365.tar.zst yuzu-bc1399204b914608715306a8a8dbe2f201dd4365.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/k_thread_queue.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/hle/kernel/k_thread_queue.h b/src/core/hle/kernel/k_thread_queue.h index 35d471dc5..74e76e7cb 100644 --- a/src/core/hle/kernel/k_thread_queue.h +++ b/src/core/hle/kernel/k_thread_queue.h @@ -4,6 +4,7 @@ #pragma once +#include "core/hle/kernel/k_scheduler.h" #include "core/hle/kernel/k_thread.h" namespace Kernel { @@ -11,7 +12,16 @@ namespace Kernel { class KThreadQueue { public: explicit KThreadQueue(KernelCore& kernel_) : kernel{kernel_} {} + virtual ~KThreadQueue(){}; + virtual void NotifyAvailable(KThread* waiting_thread, KSynchronizationObject* signaled_object, + ResultCode wait_result); + virtual void EndWait(KThread* waiting_thread, ResultCode wait_result); + virtual void CancelWait(KThread* waiting_thread, ResultCode wait_result, + bool cancel_timer_task); + + // Deprecated, will be removed in subsequent commits. +public: bool IsEmpty() const { return wait_list.empty(); } @@ -78,4 +88,11 @@ private: KThread::WaiterList wait_list{}; }; +class KThreadQueueWithoutEndWait : public KThreadQueue { +public: + explicit KThreadQueueWithoutEndWait(KernelCore& kernel_) : KThreadQueue(kernel_) {} + + virtual void EndWait(KThread* waiting_thread, ResultCode wait_result) override final; +}; + } // namespace Kernel |