atproto relay in zig zlay.waow.tech
relay zig atproto

frame pool: sync through the main io, not pool_io master

a fiber that parks through a Threaded io blocks its loop thread: a contended submit lock is a kernel futex wait, and full-queue backpressure is a 10ms thread sleep, taken on the zio loop thread. under load every subscriber fiber serializes on these and the broadcaster fiber starves — the queue fills and the relay stops. the main io's futex is safe from both domains: fibers park in the sched table, the pool's OS worker threads fall back to the kernel futex, and wakes reach both. under Io.Threaded this is a no-op. also bumps zio to 2a84a09 (DNS fiber wake + broadcast sentinel). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>


+11 -5
2 changed files