Merge base branch: the burst-drain bound is stated against the burst

Base-update only — the tree is byte-identical to this branch before the merge.
Both conflicts resolve to this branch's side because the base commit rewrites a
mechanism the fold has already deleted:

  * test_plain_waiter_reaping.cpp — the base reworks the idle-burst bound into
    kBurst/2 because, with a waiter thread per call, what survives an idle burst
    is the last EXIT BATCH: scheduling-dependent, frozen once the threads are
    gone, and up to 402 of 800 on a loaded Linux box. None of that exists here.
    An entry in CallState::inflight lives exactly as long as its call and is
    erased by the one delivery it gets, so there is no exit batch, no residue,
    and no reason to loosen the bound this file already asserts.

  * plain_logos_object.h — the base amends the retention note above m_waiters.
    There is no m_waiters here.

What DOES carry over is the reason the base commit exists, and it is worth
knowing while this branch is still open: on Linux the 800-call burst is not
concurrent, because spawning a std::thread costs more than a loopback ping. The
spawn-path reaper collects most of it before the last call is issued, which is
why the pre-fold defect's own residue (4-168 idle) overlapped a correct build's
there and why the old bound of 8 failed correct code in 35 of 60 unloaded Linux
runs. The fold removes the thread per call, so it removes the cause; the 8 this
file still asserts is measuring an exact registry now, not a race.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Dario Gabriel Lipicar
2026-08-08 12:41:21 -03:00
co-authored by Claude Opus 5

Diff Content Not Available