From ed1027503339ea55f4fd0d11843e2b233610d037 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Wed, 9 Oct 2024 18:09:47 -0700 Subject: [PATCH] Don't use Thread.Join() in NDS Dispose() resolves #3220 --- .../Consoles/Nintendo/NDS/MelonDS.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs index 13c4658ca7..0346f06d39 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs @@ -500,7 +500,15 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS { _isDisposing = true; _frameThreadStartEvent.Release(); - _frameThread?.Join(); + + if (_frameThread != null) + { + while (_frameThread.IsAlive) + { + Thread.Sleep(1); + } + } + _frameThreadStartEvent.Dispose(); _frameThreadEndEvent.Dispose();