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

fix gcLoop: silently exited after one tick master

gcLoop was using io.sleep on pool_io (Threaded) from a plain std.Thread. the first tick happened to succeed, the second hit an error path, and catch return swallowed it — silently killing the loop. one malloc_trim fired at the 10-min mark and then nothing for 13.5+ hours. fix: switch to std.c.nanosleep directly. plain threads can't safely call into Io scheduler primitives, even on the matching backend, because they aren't registered with that backend's scheduler. drop the io parameter from gcLoop since dp.gc() uses its own bound io internally. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>


+15 -9
1 changed file