From 168bad0450af7d2a4df9b3455efb74fda28de196 Mon Sep 17 00:00:00 2001 From: sergystepanov Date: Sat, 13 Jun 2026 09:46:11 +0300 Subject: [PATCH] Use thread OS lock only with GL cores --- pkg/worker/caged/libretro/frontend.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/worker/caged/libretro/frontend.go b/pkg/worker/caged/libretro/frontend.go index b3baecde..adf52cec 100644 --- a/pkg/worker/caged/libretro/frontend.go +++ b/pkg/worker/caged/libretro/frontend.go @@ -62,6 +62,7 @@ type Frontend struct { onVideo func(app.Video) storage Storage scale float64 + isGL bool th int // draw threads vw, vh int // out frame size @@ -186,6 +187,7 @@ func (f *Frontend) LoadCore(emu string) { } f.storage.SetNonBlocking(conf.NonBlockingSave) f.scale = scale + f.isGL = conf.IsGlAllowed f.nano.CoreLoad(meta) f.mu.Unlock() } @@ -268,9 +270,11 @@ func (f *Frontend) Start() { return } - // don't jump between threads - runtime.LockOSThread() - defer runtime.UnlockOSThread() + if f.isGL { + // don't jump between threads + runtime.LockOSThread() + defer runtime.UnlockOSThread() + } f.mui.Lock() f.done = make(chan struct{})