Fix race condition for the shared evaluator when any active input handler is threaded.

This commit is contained in:
2023-04-22 21:16:17 +08:00
parent a1fd420493
commit 72a93721f9
4 changed files with 57 additions and 54 deletions

View File

@@ -103,11 +103,11 @@ namespace Cryville.Crtr {
if (ev == null) { }
else if (ev.Unstamped == null) { }
else if (ev.Unstamped is Chart.Judge) {
ChartPlayer.etor.ContextEvent = ev.Unstamped;
ChartPlayer.etor.ContextState = s;
judge._etor.ContextEvent = ev.Unstamped;
judge._etor.ContextState = s;
judge.Prepare(ev, this);
ChartPlayer.etor.ContextState = null;
ChartPlayer.etor.ContextEvent = null;
judge._etor.ContextState = null;
judge._etor.ContextEvent = null;
}
}
if (s.CloneType == 2 && ev != null && ev.Unstamped is Chart.Judge) {