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

fix pingLoop use-after-free: respect cancellation, check isClosed master

pingLoop swallowed error.Canceled from io.sleep(), preventing ping_future.cancel() from stopping the task before client.deinit() freed the stream/TLS buffers. next writeFrame hit freed memory → GPF. two changes: - io.sleep() catch {} → catch return (cancellation-cooperative) - check client.isClosed() before writeFrame (defense-in-depth) also bumps zat to v0.3.0-alpha.11 and websocket.zig to 104608b. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>


+10 -7
2 changed files