Severity: low — a config option silently no-ops; one-line fix or one-line doc.
Problem
Shared-ring accept copies the config onto the connection: conn.UseZc = _zeroCopySend (Reactor.Loop.SharedRing.cs#L152).
The incremental accept path never assigns UseZc (Reactor.Loop.Incremental.cs#L265-L276). The field defaults to false, and Clear() resets SendOpFlags but deliberately not UseZc (Connection.cs#L134).
Net effect: ZeroCopySend = true + Incremental = true silently sends with plain SEND — no error, no warning, and the ServerConfig.ZeroCopySend docs don't mention the restriction.
Suggested fix
Either mirror the shared path (conn.UseZc = _zeroCopySend at incremental accept), or — if plain SEND is intentional for the incremental path — document it on ServerConfig.ZeroCopySend and consider throwing on the invalid combination at startup so the config never lies.
Severity: low — a config option silently no-ops; one-line fix or one-line doc.
Problem
Shared-ring accept copies the config onto the connection:
conn.UseZc = _zeroCopySend(Reactor.Loop.SharedRing.cs#L152).The incremental accept path never assigns
UseZc(Reactor.Loop.Incremental.cs#L265-L276). The field defaults tofalse, andClear()resetsSendOpFlagsbut deliberately notUseZc(Connection.cs#L134).Net effect:
ZeroCopySend = true+Incremental = truesilently sends with plainSEND— no error, no warning, and theServerConfig.ZeroCopySenddocs don't mention the restriction.Suggested fix
Either mirror the shared path (
conn.UseZc = _zeroCopySendat incremental accept), or — if plain SEND is intentional for the incremental path — document it onServerConfig.ZeroCopySendand consider throwing on the invalid combination at startup so the config never lies.