using Ryujinx.HLE.HOS.Kernel.Threading; using System.Collections.Generic; namespace Ryujinx.HLE.HOS.Kernel.Common { class KSynchronizationObject : KAutoObject { public LinkedList<KThread> WaitingThreads { get; } public KSynchronizationObject(KernelContext context) : base(context) { WaitingThreads = new LinkedList<KThread>(); } public LinkedListNode<KThread> AddWaitingThread(KThread thread) { return WaitingThreads.AddLast(thread); } public void RemoveWaitingThread(LinkedListNode<KThread> node) { WaitingThreads.Remove(node); } public virtual void Signal() { KernelContext.Synchronization.SignalObject(this); } public virtual bool IsSignaled() { return false; } } }