b8133c1997
* Started to rewrite the thread scheduler * Add a single core-like scheduling mode, enabled by default * Clear exclusive monitor on context switch * Add SetThreadActivity, misc fixes * Implement WaitForAddress and SignalToAddress svcs, misc fixes * Misc fixes (on SetActivity and Arbiter), other tweaks * Rebased * Add missing null check * Rename multicore key on config, fix UpdatePriorityInheritance * Make scheduling data MLQs private * nit: Ordering
38 lines
741 B
C#
38 lines
741 B
C#
namespace Ryujinx.HLE.HOS.Kernel
|
|
{
|
|
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;
|
|
}
|
|
}
|
|
} |