diff options
Diffstat (limited to 'ChocolArm64/AThread.cs')
| -rw-r--r-- | ChocolArm64/AThread.cs | 69 |
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 |
