|
|
|
@ -17,19 +17,10 @@ namespace Kernel {
|
|
|
|
|
namespace {
|
|
|
|
|
|
|
|
|
|
class ThreadQueueImplForKSynchronizationObjectWait final : public KThreadQueueWithoutEndWait {
|
|
|
|
|
private:
|
|
|
|
|
using ThreadListNode = KSynchronizationObject::ThreadListNode;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
KSynchronizationObject** m_objects;
|
|
|
|
|
ThreadListNode* m_nodes;
|
|
|
|
|
s32 m_count;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
ThreadQueueImplForKSynchronizationObjectWait(KernelCore& kernel_, KSynchronizationObject** o,
|
|
|
|
|
ThreadListNode* n, s32 c)
|
|
|
|
|
: KThreadQueueWithoutEndWait(kernel_), m_objects(o), m_nodes(n), m_count(c) { // ...
|
|
|
|
|
}
|
|
|
|
|
KSynchronizationObject::ThreadListNode* n, s32 c)
|
|
|
|
|
: KThreadQueueWithoutEndWait(kernel_), m_objects(o), m_nodes(n), m_count(c) {}
|
|
|
|
|
|
|
|
|
|
virtual void NotifyAvailable(KThread* waiting_thread, KSynchronizationObject* signaled_object,
|
|
|
|
|
ResultCode wait_result) override {
|
|
|
|
@ -68,6 +59,11 @@ public:
|
|
|
|
|
// Invoke the base cancel wait handler.
|
|
|
|
|
KThreadQueue::CancelWait(waiting_thread, wait_result, cancel_timer_task);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
KSynchronizationObject** m_objects;
|
|
|
|
|
KSynchronizationObject::ThreadListNode* m_nodes;
|
|
|
|
|
s32 m_count;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace
|
|
|
|
|