https://gitlab.synchro.net/main/sbbs/-/commit/1d7400613194a9611531d44e
Added Files:
src/syncterm/audio_apc_test.c
Modified Files:
src/syncterm/CHANGES CMakeLists.txt audio_apc.c audio_apc.h term.c
Log Message:
Stop session audio before disconnect teardown
Stop cterm music, effects, status-line streams, and every APC channel before releasing any audio-device references. xptone_close drains all remaining streams, so closing channels one at a time could wait for other session audio to finish.
Run cleanup before protocol shutdown and the remote-disconnect notice, cover the outer quit path, and reset notification state for every channel. Keep cterm ownership of its music and effects handles until cterm_end.
Add a headless real-mixer regression that checks all streams are empty at the first device close, with finite and looping queues, status-line audio, repeated cleanup, patch cleanup, and subsequent sessions. Verified native build and CTest, MinGW compilation, and remote EOF with SDL dummy audio: the old build remained blocked on a 30-second clip, while the fixed build returned promptly.
--- SBBSecho 3.38-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)