···2121fork-specific.
22222323For intentional `runIo` shutdown, an optional server-handler `serverClose` hook
2424-can send the close frame appropriate to the application. The two drain clocks
2525-begin together, so their waits use the larger duration, not their sum:
2424+can send the close frame appropriate to the application. Hooks fan out
2525+concurrently, so a backpressured peer cannot prevent other clients from being
2626+notified; a peer still blocked at its WebSocket deadline has both socket
2727+directions interrupted. The two drain clocks begin together, so their waits use
2828+the larger duration, not their sum:
26292730```zig
2831var server = try ws.Server(Handler).init(allocator, io, .{