From 3158ca59f78e39db6ba0eb1f4359db3f2b0de0b2 Mon Sep 17 00:00:00 2001 From: Alex P Date: Tue, 5 Aug 2025 01:05:06 +0300 Subject: [PATCH] Finetuning: further perf. tunning --- internal/audio/nonblocking_audio.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/internal/audio/nonblocking_audio.go b/internal/audio/nonblocking_audio.go index d0af2b8..d450b93 100644 --- a/internal/audio/nonblocking_audio.go +++ b/internal/audio/nonblocking_audio.go @@ -2,6 +2,7 @@ package audio import ( "context" + "runtime" "sync" "sync/atomic" "time" @@ -130,6 +131,10 @@ func (nam *NonBlockingAudioManager) StartAudioInput(receiveChan <-chan []byte) e // outputWorkerThread handles all blocking audio output operations func (nam *NonBlockingAudioManager) outputWorkerThread() { + // Lock to OS thread to isolate blocking CGO operations + runtime.LockOSThread() + defer runtime.UnlockOSThread() + defer nam.wg.Done() defer atomic.StoreInt32(&nam.outputWorkerRunning, 0) @@ -263,6 +268,10 @@ func (nam *NonBlockingAudioManager) outputCoordinatorThread() { // inputWorkerThread handles all blocking audio input operations func (nam *NonBlockingAudioManager) inputWorkerThread() { + // Lock to OS thread to isolate blocking CGO operations + runtime.LockOSThread() + defer runtime.UnlockOSThread() + defer nam.wg.Done() defer atomic.StoreInt32(&nam.inputWorkerRunning, 0)