From b7d4a54a45854d66b08432f0171e3ba57717910e Mon Sep 17 00:00:00 2001 From: sonninnos Date: Fri, 1 May 2026 03:38:57 +0300 Subject: [PATCH] Libretro: Fix serialization hang with opengl emuthread --- libretro/libretro.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libretro/libretro.cpp b/libretro/libretro.cpp index b8c4e0db993e..3b2f10317ec1 100644 --- a/libretro/libretro.cpp +++ b/libretro/libretro.cpp @@ -1437,10 +1437,11 @@ namespace Libretro void EmuThreadStart() { EmuThreadState state = emuThreadState; - if (state == EmuThreadState::RUNNING || state == EmuThreadState::START_REQUESTED || emuThread.joinable()) + bool wasPaused = state == EmuThreadState::PAUSED; + + if (state == EmuThreadState::RUNNING || state == EmuThreadState::START_REQUESTED || (emuThread.joinable() && !wasPaused)) return; - bool wasPaused = state == EmuThreadState::PAUSED; emuThreadState = EmuThreadState::START_REQUESTED; if (!wasPaused)