diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/KEvent.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Kernel/KEvent.cs | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/KEvent.cs b/Ryujinx.HLE/HOS/Kernel/KEvent.cs index eaaafaba..1a865aa2 100644 --- a/Ryujinx.HLE/HOS/Kernel/KEvent.cs +++ b/Ryujinx.HLE/HOS/Kernel/KEvent.cs @@ -1,4 +1,38 @@ namespace Ryujinx.HLE.HOS.Kernel { - class KEvent : KSynchronizationObject { } + class KEvent : KSynchronizationObject + { + private bool Signaled; + + public string Name { get; private set; } + + public KEvent(Horizon System, string Name = "") : base(System) + { + this.Name = Name; + } + + public override void Signal() + { + System.CriticalSectionLock.Lock(); + + if (!Signaled) + { + Signaled = true; + + base.Signal(); + } + + System.CriticalSectionLock.Unlock(); + } + + public void Reset() + { + Signaled = false; + } + + public override bool IsSignaled() + { + return Signaled; + } + } }
\ No newline at end of file |
