diff options
author | gdkchan <gab.dark.100@gmail.com> | 2020-05-04 00:41:29 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-04 13:41:29 +1000 |
commit | 15d1cc806b1b978bab83d8bb426a124d9f0f788c (patch) | |
tree | 4fd10fdd11412bafcf3022e7cc4eb21179eef1b1 /Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs | |
parent | cd48576f5846aa89a36bfc833e9de5dde9627aed (diff) |
Move kernel state out of the Horizon class (#1107)
* Move kernel state from Horizon to KernelContext
* Merge syscalls partial classes, split 32 and 64-bit variants
* Sort usings
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs index 865551a2..fa9b669e 100644 --- a/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs +++ b/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs @@ -5,11 +5,11 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading { class KSynchronization { - private Horizon _system; + private KernelContext _context; - public KSynchronization(Horizon system) + public KSynchronization(KernelContext context) { - _system = system; + _context = context; } public KernelResult WaitFor(KSynchronizationObject[] syncObjs, long timeout, out int handleIndex) @@ -18,7 +18,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading KernelResult result = KernelResult.TimedOut; - _system.CriticalSection.Enter(); + _context.CriticalSection.Enter(); // Check if objects are already signaled before waiting. for (int index = 0; index < syncObjs.Length; index++) @@ -30,19 +30,19 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading handleIndex = index; - _system.CriticalSection.Leave(); + _context.CriticalSection.Leave(); return KernelResult.Success; } if (timeout == 0) { - _system.CriticalSection.Leave(); + _context.CriticalSection.Leave(); return result; } - KThread currentThread = _system.Scheduler.GetCurrentThread(); + KThread currentThread = _context.Scheduler.GetCurrentThread(); if (currentThread.ShallBeTerminated || currentThread.SchedFlags == ThreadSchedState.TerminationPending) @@ -72,19 +72,19 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading if (timeout > 0) { - _system.TimeManager.ScheduleFutureInvocation(currentThread, timeout); + _context.TimeManager.ScheduleFutureInvocation(currentThread, timeout); } - _system.CriticalSection.Leave(); + _context.CriticalSection.Leave(); currentThread.WaitingSync = false; if (timeout > 0) { - _system.TimeManager.UnscheduleFutureInvocation(currentThread); + _context.TimeManager.UnscheduleFutureInvocation(currentThread); } - _system.CriticalSection.Enter(); + _context.CriticalSection.Enter(); result = currentThread.ObjSyncResult; @@ -101,14 +101,14 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading } } - _system.CriticalSection.Leave(); + _context.CriticalSection.Leave(); return result; } public void SignalObject(KSynchronizationObject syncObj) { - _system.CriticalSection.Enter(); + _context.CriticalSection.Enter(); if (syncObj.IsSignaled()) { @@ -130,7 +130,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading } } - _system.CriticalSection.Leave(); + _context.CriticalSection.Leave(); } } }
\ No newline at end of file |