From 51697f2106beb9b9881d29152cbf8e4d75e1cfb8 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Thu, 7 May 2026 15:00:00 +0200 Subject: [PATCH] pause behavior --- libao-async-ffi-racket.rkt | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/libao-async-ffi-racket.rkt b/libao-async-ffi-racket.rkt index 556959b..942b8fa 100644 --- a/libao-async-ffi-racket.rkt +++ b/libao-async-ffi-racket.rkt @@ -1,4 +1,4 @@ -(#lang racket/base +#lang racket/base ;; Pure Racket replacement for ao_playasync.c as used by libao.rkt. ;; @@ -469,20 +469,12 @@ (mutex-lock (ao-handle-pause-mutex h)) (mutex-unlock (ao-handle-pause-mutex h)) (mutex-lock (ao-handle-clear-mutex h)) - (let ((elem (if (ao-handle-paused h) - #f - (get h 150)))) + (let ((elem (get h 150))) (mutex-unlock (ao-handle-clear-mutex h)) (if (eq? elem #f) - (if (ao-handle-paused h) - (begin - (dbg-sound "run thread paused") - (sleep 0.1) - ) - (begin - (dbg-sound "nothing in the queue") - (sleep 0.01)) - ) + (begin + (dbg-sound "nothing in the queue") + (sleep 0.05)) (begin (if (eq? (queue-elem-command elem) 'stop) (set! go-on #f) @@ -768,14 +760,12 @@ (when (integer? paused) (set! paused (not (= paused 0)))) (dbg-sound "ao_pause_async ~a" paused) - (sync-log-sound) (if (ao-handle-paused h) (when (eq? paused #f) (mutex-unlock (ao-handle-pause-mutex h)) (set-ao-handle-paused! h #f) ) (when (eq? paused #t) - (dbg-sound "locking pause mutex") (sync-log-sound) (mutex-lock (ao-handle-pause-mutex h)) (set-ao-handle-paused! h #t)