KEvent.cs 741 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. namespace Ryujinx.HLE.HOS.Kernel
  2. {
  3. class KEvent : KSynchronizationObject
  4. {
  5. private bool Signaled;
  6. public string Name { get; private set; }
  7. public KEvent(Horizon System, string Name = "") : base(System)
  8. {
  9. this.Name = Name;
  10. }
  11. public override void Signal()
  12. {
  13. System.CriticalSectionLock.Lock();
  14. if (!Signaled)
  15. {
  16. Signaled = true;
  17. base.Signal();
  18. }
  19. System.CriticalSectionLock.Unlock();
  20. }
  21. public void Reset()
  22. {
  23. Signaled = false;
  24. }
  25. public override bool IsSignaled()
  26. {
  27. return Signaled;
  28. }
  29. }
  30. }