diff --git a/BizHawk.MultiClient/LuaImplementation.cs b/BizHawk.MultiClient/LuaImplementation.cs index d1171efd1e..5ef3cee83b 100644 --- a/BizHawk.MultiClient/LuaImplementation.cs +++ b/BizHawk.MultiClient/LuaImplementation.cs @@ -31,6 +31,7 @@ namespace BizHawk.MultiClient public void Close() { + LuaKillThread(); lua.Close(); LuaWait.Dispose(); } @@ -118,6 +119,11 @@ namespace BizHawk.MultiClient isRunning = false; LuaWait.Set(); } + public void LuaKillThread() + { + if (LuaThread != null) + LuaThread.Abort(); + } public void DoLuaFile(string File) { diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 893bd951e0..7104bf6f36 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -119,6 +119,7 @@ namespace BizHawk.MultiClient CloseGame(); Global.MovieSession.Movie.StopMovie(); SaveConfig(); + LuaConsole1.LuaImp.StopScripts(); }; ResizeBegin += (o, e) => @@ -364,7 +365,7 @@ namespace BizHawk.MultiClient { CurrAviWriter.CloseFile(); CurrAviWriter = null; - } + } } void CheckMessages() diff --git a/BizHawk.MultiClient/tools/LuaConsole.cs b/BizHawk.MultiClient/tools/LuaConsole.cs index d6e5d0ba1e..71a344389f 100644 --- a/BizHawk.MultiClient/tools/LuaConsole.cs +++ b/BizHawk.MultiClient/tools/LuaConsole.cs @@ -93,7 +93,7 @@ namespace BizHawk.MultiClient private void StopAllScripts() { for (int x = 0; x < luaList.Count; x++) - luaList[x].Enabled = false; + luaList[x].Enabled = false; LuaImp.Close(); LuaImp = new LuaImplementation(this); }