aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Core/OsHle/Handles/KThread.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-06-10 21:46:42 -0300
committergdkchan <gab.dark.100@gmail.com>2018-06-10 21:46:42 -0300
commit76f3b1b3a4637ec72abfbb8cbc0679f2e0ca838f (patch)
tree0411b709de31c1c0517763512df8eeb9f7491bc9 /Ryujinx.Core/OsHle/Handles/KThread.cs
parent518fe799da6dd4f12c58c9e6e174767effb0b868 (diff)
Rename Ryujinx.Core to Ryujinx.HLE and add a separate project for a future LLE implementation
Diffstat (limited to 'Ryujinx.Core/OsHle/Handles/KThread.cs')
-rw-r--r--Ryujinx.Core/OsHle/Handles/KThread.cs86
1 files changed, 0 insertions, 86 deletions
diff --git a/Ryujinx.Core/OsHle/Handles/KThread.cs b/Ryujinx.Core/OsHle/Handles/KThread.cs
deleted file mode 100644
index 48782823..00000000
--- a/Ryujinx.Core/OsHle/Handles/KThread.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-using ChocolArm64;
-using System.Collections.Generic;
-
-namespace Ryujinx.Core.OsHle.Handles
-{
- class KThread : KSynchronizationObject
- {
- public AThread Thread { get; private set; }
-
- public int CoreMask { get; set; }
-
- public long MutexAddress { get; set; }
- public long CondVarAddress { get; set; }
-
- public bool CondVarSignaled { get; set; }
-
- private Process Process;
-
- public List<KThread> MutexWaiters { get; private set; }
-
- public KThread MutexOwner { get; set; }
-
- public int ActualPriority { get; private set; }
- public int WantedPriority { get; private set; }
-
- public int ActualCore { get; set; }
- public int ProcessorId { get; set; }
- public int IdealCore { get; set; }
-
- public int WaitHandle { get; set; }
-
- public int ThreadId => Thread.ThreadId;
-
- public KThread(
- AThread Thread,
- Process Process,
- int ProcessorId,
- int Priority)
- {
- this.Thread = Thread;
- this.Process = Process;
- this.ProcessorId = ProcessorId;
- this.IdealCore = ProcessorId;
-
- MutexWaiters = new List<KThread>();
-
- CoreMask = 1 << ProcessorId;
-
- ActualPriority = WantedPriority = Priority;
- }
-
- public void SetPriority(int Priority)
- {
- WantedPriority = Priority;
-
- UpdatePriority();
- }
-
- public void UpdatePriority()
- {
- int OldPriority = ActualPriority;
-
- int CurrPriority = WantedPriority;
-
- lock (Process.ThreadSyncLock)
- {
- foreach (KThread Thread in MutexWaiters)
- {
- if (CurrPriority > Thread.WantedPriority)
- {
- CurrPriority = Thread.WantedPriority;
- }
- }
- }
-
- if (CurrPriority != OldPriority)
- {
- ActualPriority = CurrPriority;
-
- Process.Scheduler.Resort(this);
-
- MutexOwner?.UpdatePriority();
- }
- }
- }
-} \ No newline at end of file