aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs')
-rw-r--r--src/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs42
1 files changed, 18 insertions, 24 deletions
diff --git a/src/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs b/src/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs
index 57fbabd5..f6b9a112 100644
--- a/src/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs
+++ b/src/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs
@@ -38,7 +38,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return KernelResult.ThreadTerminating;
}
- currentThread.SignaledObj = null;
+ currentThread.SignaledObj = null;
currentThread.ObjSyncResult = Result.Success;
KProcess currentProcess = KernelStatic.GetCurrentProcess();
@@ -66,7 +66,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return KernelResult.InvalidHandle;
}
- currentThread.MutexAddress = mutexAddress;
+ currentThread.MutexAddress = mutexAddress;
currentThread.ThreadHandleForUserMutex = requesterHandle;
mutexOwner.AddMutexWaiter(currentThread);
@@ -76,10 +76,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
_context.CriticalSection.Leave();
_context.CriticalSection.Enter();
- if (currentThread.MutexOwner != null)
- {
- currentThread.MutexOwner.RemoveMutexWaiter(currentThread);
- }
+ currentThread.MutexOwner?.RemoveMutexWaiter(currentThread);
_context.CriticalSection.Leave();
@@ -103,7 +100,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (result != Result.Success && newOwnerThread != null)
{
- newOwnerThread.SignaledObj = null;
+ newOwnerThread.SignaledObj = null;
newOwnerThread.ObjSyncResult = result;
}
@@ -118,7 +115,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
KThread currentThread = KernelStatic.GetCurrentThread();
- currentThread.SignaledObj = null;
+ currentThread.SignaledObj = null;
currentThread.ObjSyncResult = KernelResult.TimedOut;
if (currentThread.TerminationRequested)
@@ -139,9 +136,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return KernelResult.InvalidMemState;
}
- currentThread.MutexAddress = mutexAddress;
+ currentThread.MutexAddress = mutexAddress;
currentThread.ThreadHandleForUserMutex = threadHandle;
- currentThread.CondVarAddress = condVarAddress;
+ currentThread.CondVarAddress = condVarAddress;
_condVarThreads.Add(currentThread);
@@ -164,10 +161,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
_context.CriticalSection.Enter();
- if (currentThread.MutexOwner != null)
- {
- currentThread.MutexOwner.RemoveMutexWaiter(currentThread);
- }
+ currentThread.MutexOwner?.RemoveMutexWaiter(currentThread);
_condVarThreads.Remove(currentThread);
@@ -176,7 +170,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return currentThread.ObjSyncResult;
}
- private (int, KThread) MutexUnlock(KThread currentThread, ulong mutexAddress)
+ private static (int, KThread) MutexUnlock(KThread currentThread, ulong mutexAddress)
{
KThread newOwnerThread = currentThread.RelinquishMutex(mutexAddress, out int count);
@@ -191,7 +185,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
mutexValue |= HasListenersMask;
}
- newOwnerThread.SignaledObj = null;
+ newOwnerThread.SignaledObj = null;
newOwnerThread.ObjSyncResult = Result.Success;
newOwnerThread.ReleaseAndResume();
@@ -223,7 +217,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (!currentProcess.CpuMemory.IsMapped(address))
{
// Invalid address.
- requester.SignaledObj = null;
+ requester.SignaledObj = null;
requester.ObjSyncResult = KernelResult.InvalidMemState;
return;
@@ -253,7 +247,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (mutexValue == 0)
{
// We now own the mutex.
- requester.SignaledObj = null;
+ requester.SignaledObj = null;
requester.ObjSyncResult = Result.Success;
requester.ReleaseAndResume();
@@ -273,7 +267,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
else
{
// Invalid mutex owner.
- requester.SignaledObj = null;
+ requester.SignaledObj = null;
requester.ObjSyncResult = KernelResult.InvalidHandle;
requester.ReleaseAndResume();
@@ -293,7 +287,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return KernelResult.ThreadTerminating;
}
- currentThread.SignaledObj = null;
+ currentThread.SignaledObj = null;
currentThread.ObjSyncResult = KernelResult.TimedOut;
if (!KernelTransfer.UserToKernel(out int currentValue, address))
@@ -312,7 +306,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return KernelResult.TimedOut;
}
- currentThread.MutexAddress = address;
+ currentThread.MutexAddress = address;
currentThread.WaitingInArbitration = true;
_arbiterThreads.Add(currentThread);
@@ -363,7 +357,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return KernelResult.ThreadTerminating;
}
- currentThread.SignaledObj = null;
+ currentThread.SignaledObj = null;
currentThread.ObjSyncResult = KernelResult.TimedOut;
KProcess currentProcess = KernelStatic.GetCurrentProcess();
@@ -389,7 +383,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return KernelResult.TimedOut;
}
- currentThread.MutexAddress = address;
+ currentThread.MutexAddress = address;
currentThread.WaitingInArbitration = true;
_arbiterThreads.Add(currentThread);
@@ -551,7 +545,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
{
static void RemoveArbiterThread(KThread thread)
{
- thread.SignaledObj = null;
+ thread.SignaledObj = null;
thread.ObjSyncResult = Result.Success;
thread.ReleaseAndResume();