aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/AThread.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ChocolArm64/AThread.cs')
-rw-r--r--ChocolArm64/AThread.cs69
1 files changed, 0 insertions, 69 deletions
diff --git a/ChocolArm64/AThread.cs b/ChocolArm64/AThread.cs
deleted file mode 100644
index 38c2b53d..00000000
--- a/ChocolArm64/AThread.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using ChocolArm64.Memory;
-using ChocolArm64.State;
-using System;
-using System.Threading;
-
-namespace ChocolArm64
-{
- public class AThread
- {
- public AThreadState ThreadState { get; private set; }
- public AMemory Memory { get; private set; }
-
- private ATranslator Translator;
-
- public Thread Work;
-
- public event EventHandler WorkFinished;
-
- private int IsExecuting;
-
- public AThread(ATranslator Translator, AMemory Memory, long EntryPoint)
- {
- this.Translator = Translator;
- this.Memory = Memory;
-
- ThreadState = new AThreadState();
-
- ThreadState.ExecutionMode = AExecutionMode.AArch64;
-
- ThreadState.Running = true;
-
- Work = new Thread(delegate()
- {
- Translator.ExecuteSubroutine(this, EntryPoint);
-
- Memory.RemoveMonitor(ThreadState.Core);
-
- WorkFinished?.Invoke(this, EventArgs.Empty);
- });
- }
-
- public bool Execute()
- {
- if (Interlocked.Exchange(ref IsExecuting, 1) == 1)
- {
- return false;
- }
-
- Work.Start();
-
- return true;
- }
-
- public void StopExecution()
- {
- ThreadState.Running = false;
- }
-
- public void RequestInterrupt()
- {
- ThreadState.RequestInterrupt();
- }
-
- public bool IsCurrentThread()
- {
- return Thread.CurrentThread == Work;
- }
- }
-} \ No newline at end of file