Finetuning: further perf. tunning

This commit is contained in:
Alex P 2025-08-05 01:05:06 +03:00
parent 612dca3fca
commit 3158ca59f7
1 changed files with 9 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package audio
import ( import (
"context" "context"
"runtime"
"sync" "sync"
"sync/atomic" "sync/atomic"
"time" "time"
@ -130,6 +131,10 @@ func (nam *NonBlockingAudioManager) StartAudioInput(receiveChan <-chan []byte) e
// outputWorkerThread handles all blocking audio output operations // outputWorkerThread handles all blocking audio output operations
func (nam *NonBlockingAudioManager) outputWorkerThread() { func (nam *NonBlockingAudioManager) outputWorkerThread() {
// Lock to OS thread to isolate blocking CGO operations
runtime.LockOSThread()
defer runtime.UnlockOSThread()
defer nam.wg.Done() defer nam.wg.Done()
defer atomic.StoreInt32(&nam.outputWorkerRunning, 0) defer atomic.StoreInt32(&nam.outputWorkerRunning, 0)
@ -263,6 +268,10 @@ func (nam *NonBlockingAudioManager) outputCoordinatorThread() {
// inputWorkerThread handles all blocking audio input operations // inputWorkerThread handles all blocking audio input operations
func (nam *NonBlockingAudioManager) inputWorkerThread() { func (nam *NonBlockingAudioManager) inputWorkerThread() {
// Lock to OS thread to isolate blocking CGO operations
runtime.LockOSThread()
defer runtime.UnlockOSThread()
defer nam.wg.Done() defer nam.wg.Done()
defer atomic.StoreInt32(&nam.inputWorkerRunning, 0) defer atomic.StoreInt32(&nam.inputWorkerRunning, 0)