• src/bench/zmodem/.gitignoresrc/bench/zmodem/zbench_sock.py

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Aug 24 20:32:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d3d432cef5e5d24a35472a00
    Added Files:
    src/bench/zmodem/.gitignore
    Modified Files:
    src/bench/zmodem/zbench_sock.py
    Log Message:
    bench/zmodem: report per-endpoint CPU, and accept multi-file batches

    Two blind spots in the harness, both of which hid real defects.

    Goodput alone cannot tell "fast code" from "idle code". Reaping both
    endpoints with wait4() instead of Popen.wait() costs nothing and puts each side's user/system CPU and context-switch count beside the transfer rate.
    That distinction is what identifies a receiver-bound run at a glance: the receiver's CPU equals the wall clock while the sender sits at a third of it.

    --file now repeats, so one run can send a batch. It was singular, and a per-file cost is invisible in a single-file goodput figure by construction -- it lands once, in a metric built to divide fixed costs away, and the rate-capped rows refund it from banked tokens. That is how a flat one-second-per-file stall survived months of benchmarking.

    Also ignore the two hand-built bench binaries, which were untracked and unignored.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net