The prefix, AS and peer handlers skipped a timed write unless one interval had passed since the last write ended. The next tick came a little less than one interval after that, so every other tick was skipped. Each tick now writes. A full batch's write restarts the timer, so the next timed write comes one interval after that write began. Comparing clock readings would not do: two ticks one interval apart can read a hair under it. flushBatch no longer reports whether it wrote a batch, since nothing reads that. A new test runs the loop on a fake clock and fails on the old code. Model: opus-5-5
This commit is contained in:
@@ -33,6 +33,10 @@ tested.
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-10-27: the prefix, AS and peer handlers make a timed write on every tick
|
||||
of their timers, every 1, 2 and 2 seconds. They used to skip every other tick.
|
||||
A full batch's write restarts the timer, so the next timed write comes one
|
||||
interval after that write began (closes #192)
|
||||
- 2026-10-27: once the stop deadline has passed, the AS, peer and peering
|
||||
handlers start no write either. A full batch or a tick of the timer that
|
||||
waited while a write ran past the deadline could still start one. The flush
|
||||
|
||||
Reference in New Issue
Block a user