public void ExecuteQueued(CpuThreadState BaseCpuThreadState)
{
if (Enabled)
{
HleCallback[] HleCallbackListCopy;
lock (HleCallbackList)
{
HleCallbackListCopy = HleCallbackList.ToArray();
HleCallbackList.Clear();
Flag = false;
}
foreach (var HleCallback in HleCallbackListCopy)
{
var FakeCpuThreadState = new CpuThreadState(CpuProcessor);
FakeCpuThreadState.CopyRegistersFrom(BaseCpuThreadState);
HleCallback.SetArgumentsToCpuThreadState(FakeCpuThreadState);
FakeCpuThreadState.EnableYielding = false;
FakeCpuThreadState.ExecuteAT(FakeCpuThreadState.PC);
//HleInterop.Execute(FakeCpuThreadState);
//Console.Error.WriteLine("Execute queued");
// Execute just one!
//break;
}
}
}