perf(ipc): give worker pipes real OS buffers instead of zero-quota rendezvous
This commit is contained in:
@@ -164,6 +164,17 @@ class drains both queues to empty, and the heartbeat loop guarantees one
|
||||
arrives within a heartbeat interval, so worst-case residency is a few envelope
|
||||
references for seconds — not a leak.
|
||||
|
||||
## Pipe Buffers
|
||||
|
||||
The gateway creates each worker pipe with an explicit 128 KiB kernel buffer per
|
||||
direction (`SessionWorkerClientFactory.PipeBufferSizeBytes`) rather than the zero
|
||||
quota the short `NamedPipeServerStream` overloads request. A zero-quota byte-mode
|
||||
pipe makes every write rendezvous with a pending read, so a writer with no reader
|
||||
parked blocks until one arrives — the failure class behind the historical windev
|
||||
full-suite wedge. A real quota decouples writer latency from reader scheduling and
|
||||
lets the flush coalescing above actually pay off. On Unix hosts, where named pipes
|
||||
are Unix domain sockets, the sizes are advisory.
|
||||
|
||||
## Verification
|
||||
|
||||
The frame protocol lives in `ZB.MOM.WW.MxGateway.Worker.Ipc` (`WorkerFrameReader`,
|
||||
|
||||
Reference in New Issue
Block a user