https://gitlab.synchro.net/main/sbbs/-/commit/452932d563e7786b3dc42955
Modified Files:
docs/v322_new.md src/vdmodem/vdmodem.c
Log Message:
vdmodem: Don't spin a CPU in the main loop when idle or connected (#1176)
With the default MainLoopDelay and SocketSelectTimeout of 0 (from
5fd72f315e, 2024-03-25), the main loop never blocked: SVDM used a full
logical CPU while waiting for calls, and while connected. Rate pacing
also spun whenever received data was waiting on the socket.
Each pass now blocks: in select() while online (SocketSelectTimeout now defaults to 1ms), otherwise in the process-handle wait for at least 1ms, including while rate-limited so the mailslot and hangup event are still serviced every millisecond. The timer resolution is raised to 1ms for the duration of the loop so these waits (and thus the emulated data rate)
aren't quantized to the default ~15ms tick. Setting SocketSelectTimeout=0 restores the old spin-wait while online.
Incremented version to 0.7
Co-Authored-By: Claude Opus 5.5 (1M context) <
noreply@anthropic.com> Co-Authored-By: Claude Fable 5.1 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net