diff --git a/Playground/Clients/File/Program.cs b/Playground/Clients/File/Program.cs
index 3b30478e..e990c1d8 100644
--- a/Playground/Clients/File/Program.cs
+++ b/Playground/Clients/File/Program.cs
@@ -109,7 +109,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Clients/Gateway/Program.cs b/Playground/Clients/Gateway/Program.cs
index ad17fbe6..ccd72bb7 100644
--- a/Playground/Clients/Gateway/Program.cs
+++ b/Playground/Clients/Gateway/Program.cs
@@ -63,7 +63,7 @@
PoolMax = 1024, // connection objects recycled per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Segmented = chained slabs, one SENDMSG
ZeroCopySend = false, // SEND_ZC; only pays off on large responses
- RecvQueueEntries = 4096, // per-connection SPSC queue, power of two
+ RecvQueueEntries = 64, // per-connection SPSC queue, power of two
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Clients/GatewayTlsPipes/Program.cs b/Playground/Clients/GatewayTlsPipes/Program.cs
index f4834001..075bf6e9 100644
--- a/Playground/Clients/GatewayTlsPipes/Program.cs
+++ b/Playground/Clients/GatewayTlsPipes/Program.cs
@@ -72,7 +72,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Clients/Http/Program.cs b/Playground/Clients/Http/Program.cs
index 7b0606af..71301fbd 100644
--- a/Playground/Clients/Http/Program.cs
+++ b/Playground/Clients/Http/Program.cs
@@ -64,7 +64,7 @@
PoolMax = 1024, // connection objects recycled per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Segmented = chained slabs, one SENDMSG
ZeroCopySend = false, // SEND_ZC; only pays off on large responses
- RecvQueueEntries = 4096, // per-connection SPSC queue, power of two
+ RecvQueueEntries = 64, // per-connection SPSC queue, power of two
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Clients/Https/Program.cs b/Playground/Clients/Https/Program.cs
index f85a7033..1b028c7e 100644
--- a/Playground/Clients/Https/Program.cs
+++ b/Playground/Clients/Https/Program.cs
@@ -68,7 +68,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Clients/Pg/Program.cs b/Playground/Clients/Pg/Program.cs
index e4286404..fca236c8 100644
--- a/Playground/Clients/Pg/Program.cs
+++ b/Playground/Clients/Pg/Program.cs
@@ -67,7 +67,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Clients/RedisStackExchange/Program.cs b/Playground/Clients/RedisStackExchange/Program.cs
index 39d36fb9..ff2afa53 100644
--- a/Playground/Clients/RedisStackExchange/Program.cs
+++ b/Playground/Clients/RedisStackExchange/Program.cs
@@ -74,7 +74,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Clients/Timer/Program.cs b/Playground/Clients/Timer/Program.cs
index 2dcafcb8..1da10d94 100644
--- a/Playground/Clients/Timer/Program.cs
+++ b/Playground/Clients/Timer/Program.cs
@@ -60,7 +60,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/ManagedBuffered/Program.cs b/Playground/Http2/ManagedBuffered/Program.cs
index ee1042a3..22d5fbcf 100644
--- a/Playground/Http2/ManagedBuffered/Program.cs
+++ b/Playground/Http2/ManagedBuffered/Program.cs
@@ -53,7 +53,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/ManagedStreamedBoth/Program.cs b/Playground/Http2/ManagedStreamedBoth/Program.cs
index 8673fae5..5cbb9541 100644
--- a/Playground/Http2/ManagedStreamedBoth/Program.cs
+++ b/Playground/Http2/ManagedStreamedBoth/Program.cs
@@ -57,7 +57,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/ManagedStreamedRequest/Program.cs b/Playground/Http2/ManagedStreamedRequest/Program.cs
index 8797729d..4d798efc 100644
--- a/Playground/Http2/ManagedStreamedRequest/Program.cs
+++ b/Playground/Http2/ManagedStreamedRequest/Program.cs
@@ -53,7 +53,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/ManagedStreamedResponse/Program.cs b/Playground/Http2/ManagedStreamedResponse/Program.cs
index f126ff17..4bbe5ceb 100644
--- a/Playground/Http2/ManagedStreamedResponse/Program.cs
+++ b/Playground/Http2/ManagedStreamedResponse/Program.cs
@@ -68,7 +68,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/Nghttp2Buffered/Program.cs b/Playground/Http2/Nghttp2Buffered/Program.cs
index a33eabd9..c90cb978 100644
--- a/Playground/Http2/Nghttp2Buffered/Program.cs
+++ b/Playground/Http2/Nghttp2Buffered/Program.cs
@@ -53,7 +53,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/Nghttp2Response/Program.cs b/Playground/Http2/Nghttp2Response/Program.cs
index 82e15664..48115eed 100644
--- a/Playground/Http2/Nghttp2Response/Program.cs
+++ b/Playground/Http2/Nghttp2Response/Program.cs
@@ -51,7 +51,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/Nghttp2StreamedRequest/Program.cs b/Playground/Http2/Nghttp2StreamedRequest/Program.cs
index e2911f52..4ec2517c 100644
--- a/Playground/Http2/Nghttp2StreamedRequest/Program.cs
+++ b/Playground/Http2/Nghttp2StreamedRequest/Program.cs
@@ -50,7 +50,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/Rotate/Program.cs b/Playground/Http2/Rotate/Program.cs
index e1cedfc1..cd7966c6 100644
--- a/Playground/Http2/Rotate/Program.cs
+++ b/Playground/Http2/Rotate/Program.cs
@@ -100,7 +100,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/Sni/Program.cs b/Playground/Http2/Sni/Program.cs
index 6201179e..2fdec433 100644
--- a/Playground/Http2/Sni/Program.cs
+++ b/Playground/Http2/Sni/Program.cs
@@ -86,7 +86,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/SslStream/Program.cs b/Playground/Http2/SslStream/Program.cs
index 817bbb77..bc016cba 100644
--- a/Playground/Http2/SslStream/Program.cs
+++ b/Playground/Http2/SslStream/Program.cs
@@ -59,7 +59,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http2/Tls/Program.cs b/Playground/Http2/Tls/Program.cs
index 49571566..62b36d8c 100644
--- a/Playground/Http2/Tls/Program.cs
+++ b/Playground/Http2/Tls/Program.cs
@@ -82,7 +82,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http3/Nghttp3Buffered/Program.cs b/Playground/Http3/Nghttp3Buffered/Program.cs
index 0d71f67b..a1a39f16 100644
--- a/Playground/Http3/Nghttp3Buffered/Program.cs
+++ b/Playground/Http3/Nghttp3Buffered/Program.cs
@@ -94,7 +94,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Http3/Nghttp3Request/Program.cs b/Playground/Http3/Nghttp3Request/Program.cs
index 83f30a9a..751a19de 100644
--- a/Playground/Http3/Nghttp3Request/Program.cs
+++ b/Playground/Http3/Nghttp3Request/Program.cs
@@ -80,7 +80,7 @@
PoolMax = 1024, // max pooled connection objects per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // grow the slab; Segmented chains pooled slabs
ZeroCopySend = false, // plain SEND; SEND_ZC only wins for large responses
- RecvQueueEntries = 4096, // per-connection SPSC recv queue depth (power of two)
+ RecvQueueEntries = 64, // per-connection SPSC recv queue depth (power of two)
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Proxy/H1ToH1/Program.cs b/Playground/Proxy/H1ToH1/Program.cs
index ef6060e4..cbb4287e 100644
--- a/Playground/Proxy/H1ToH1/Program.cs
+++ b/Playground/Proxy/H1ToH1/Program.cs
@@ -74,7 +74,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Proxy/H2ToH1/Program.cs b/Playground/Proxy/H2ToH1/Program.cs
index 4c7a6f16..c74c932f 100644
--- a/Playground/Proxy/H2ToH1/Program.cs
+++ b/Playground/Proxy/H2ToH1/Program.cs
@@ -83,7 +83,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tcp/Big/Program.cs b/Playground/Tcp/Big/Program.cs
index cbbe97a2..2d3d53ed 100644
--- a/Playground/Tcp/Big/Program.cs
+++ b/Playground/Tcp/Big/Program.cs
@@ -56,7 +56,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = overflow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = zeroCopy, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tcp/Hop/Program.cs b/Playground/Tcp/Hop/Program.cs
index 67712e5b..237514b9 100644
--- a/Playground/Tcp/Hop/Program.cs
+++ b/Playground/Tcp/Hop/Program.cs
@@ -46,7 +46,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tcp/Incremental/Program.cs b/Playground/Tcp/Incremental/Program.cs
index 1ac24609..94b3fb93 100644
--- a/Playground/Tcp/Incremental/Program.cs
+++ b/Playground/Tcp/Incremental/Program.cs
@@ -68,7 +68,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tcp/Pipe/Program.cs b/Playground/Tcp/Pipe/Program.cs
index 50bc691a..ecfc3254 100644
--- a/Playground/Tcp/Pipe/Program.cs
+++ b/Playground/Tcp/Pipe/Program.cs
@@ -55,7 +55,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tcp/Raw/Program.cs b/Playground/Tcp/Raw/Program.cs
index 9e07d1cb..b5b2e9c4 100644
--- a/Playground/Tcp/Raw/Program.cs
+++ b/Playground/Tcp/Raw/Program.cs
@@ -54,7 +54,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tcp/TaskRun/Program.cs b/Playground/Tcp/TaskRun/Program.cs
index ec2c4257..768cf19a 100644
--- a/Playground/Tcp/TaskRun/Program.cs
+++ b/Playground/Tcp/TaskRun/Program.cs
@@ -49,7 +49,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/Ktls/Program.cs b/Playground/Tls/Ktls/Program.cs
index a32792c0..0c958449 100644
--- a/Playground/Tls/Ktls/Program.cs
+++ b/Playground/Tls/Ktls/Program.cs
@@ -56,7 +56,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/KtlsPipes/Program.cs b/Playground/Tls/KtlsPipes/Program.cs
index 3fea828b..5f8ee4c8 100644
--- a/Playground/Tls/KtlsPipes/Program.cs
+++ b/Playground/Tls/KtlsPipes/Program.cs
@@ -74,7 +74,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/KtlsTx/Program.cs b/Playground/Tls/KtlsTx/Program.cs
index 3d310e3a..fd795619 100644
--- a/Playground/Tls/KtlsTx/Program.cs
+++ b/Playground/Tls/KtlsTx/Program.cs
@@ -61,7 +61,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/MtlsKtlsPipes/Program.cs b/Playground/Tls/MtlsKtlsPipes/Program.cs
index 74115700..acf67e72 100644
--- a/Playground/Tls/MtlsKtlsPipes/Program.cs
+++ b/Playground/Tls/MtlsKtlsPipes/Program.cs
@@ -95,7 +95,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/MtlsOpenSslPipes/Program.cs b/Playground/Tls/MtlsOpenSslPipes/Program.cs
index 63e427ce..dc344528 100644
--- a/Playground/Tls/MtlsOpenSslPipes/Program.cs
+++ b/Playground/Tls/MtlsOpenSslPipes/Program.cs
@@ -92,7 +92,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/MultiPort/Program.cs b/Playground/Tls/MultiPort/Program.cs
index 816ceec4..1e862135 100644
--- a/Playground/Tls/MultiPort/Program.cs
+++ b/Playground/Tls/MultiPort/Program.cs
@@ -56,7 +56,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/OpenSsl/Program.cs b/Playground/Tls/OpenSsl/Program.cs
index 96497805..93278af8 100644
--- a/Playground/Tls/OpenSsl/Program.cs
+++ b/Playground/Tls/OpenSsl/Program.cs
@@ -78,7 +78,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/OpenSslPipes/Program.cs b/Playground/Tls/OpenSslPipes/Program.cs
index 838acebd..df2ee7e6 100644
--- a/Playground/Tls/OpenSslPipes/Program.cs
+++ b/Playground/Tls/OpenSslPipes/Program.cs
@@ -77,7 +77,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/Sni/Program.cs b/Playground/Tls/Sni/Program.cs
index 664a8827..7452aa8d 100644
--- a/Playground/Tls/Sni/Program.cs
+++ b/Playground/Tls/Sni/Program.cs
@@ -86,7 +86,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/Playground/Tls/SslStream/Program.cs b/Playground/Tls/SslStream/Program.cs
index 5ccbc680..4ab2e130 100644
--- a/Playground/Tls/SslStream/Program.cs
+++ b/Playground/Tls/SslStream/Program.cs
@@ -56,7 +56,7 @@
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/docs/index.html b/docs/index.html
index 67b461cf..7e902d41 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -271,7 +271,7 @@
SNI · a certificate per host
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -422,7 +422,7 @@ mutual TLS · openssl · pipes
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -617,7 +617,7 @@ mutual TLS · kernel tx · pipes
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -806,7 +806,7 @@ h2 · a certificate per host
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -944,7 +944,7 @@ h2 · certificate renewal
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -1518,7 +1518,7 @@ plaintext + TLS · one server
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -1686,7 +1686,7 @@ TLS · SslStream
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -1810,7 +1810,7 @@ TCP · large responses
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = overflow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = zeroCopy, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -1912,7 +1912,7 @@ TCP · leaving the reactor
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -2007,7 +2007,7 @@ TCP · ordinary async
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -2130,7 +2130,7 @@ HTTP/2 · TLS & ALPN
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -2332,7 +2332,7 @@ HTTP/2 · over SslStream
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -3116,7 +3116,7 @@ HTTP/3 · buffered (nghttp3)
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -3571,7 +3571,7 @@ Timers · a deadline on the ring
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -3750,7 +3750,7 @@ Client · https origins
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -3925,7 +3925,7 @@ TCP · pipes
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -4033,7 +4033,7 @@ TCP · raw, shared recv ring
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -4158,7 +4158,7 @@ TCP · raw, incremental ring
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -4296,7 +4296,7 @@ kTLS · raw ring
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -4514,7 +4514,7 @@ kTLS · pipes
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -4674,7 +4674,7 @@ hybrid · raw ring
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -4887,7 +4887,7 @@ OpenSSL · raw ring
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5103,7 +5103,7 @@ OpenSSL · pipes
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5259,7 +5259,7 @@ HTTP/2 · buffered
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5356,7 +5356,7 @@ HTTP/2 · response streamed
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5460,7 +5460,7 @@ HTTP/2 · request streamed
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5568,7 +5568,7 @@ HTTP/2 · both directions streamed
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5693,7 +5693,7 @@ HTTP/2 · nghttp2
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5778,7 +5778,7 @@ HTTP/2 · nghttp2, response streamed
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -5871,7 +5871,7 @@ HTTP/2 · nghttp2, request streamed
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -6237,7 +6237,7 @@ HTTP/3 · request streamed (nghttp3)
PoolMax = 1024, // max pooled connection objects per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // grow the slab; Segmented chains pooled slabs
ZeroCopySend = false, // plain SEND; SEND_ZC only wins for large responses
- RecvQueueEntries = 4096, // per-connection SPSC recv queue depth (power of two)
+ RecvQueueEntries = 64, // per-connection SPSC recv queue depth (power of two)
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -6484,7 +6484,7 @@ HTTP/1.1 in · HTTP/1.1 out
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -6720,7 +6720,7 @@ HTTP/2 in · HTTP/1.1 out
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -7093,7 +7093,7 @@ HTTP client · alt-svc
PoolMax = 1024, // connection objects recycled per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Segmented = chained slabs, one SENDMSG
ZeroCopySend = false, // SEND_ZC; only pays off on large responses
- RecvQueueEntries = 4096, // per-connection SPSC queue, power of two
+ RecvQueueEntries = 64, // per-connection SPSC queue, power of two
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -7228,7 +7228,7 @@ Gateway · several origins
PoolMax = 1024, // connection objects recycled per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Segmented = chained slabs, one SENDMSG
ZeroCopySend = false, // SEND_ZC; only pays off on large responses
- RecvQueueEntries = 4096, // per-connection SPSC queue, power of two
+ RecvQueueEntries = 64, // per-connection SPSC queue, power of two
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -7419,7 +7419,7 @@ Gateway · tls + pipes
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -7645,7 +7645,7 @@ Postgres
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -7856,7 +7856,7 @@ Redis · StackExchange.Redis
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
@@ -8073,7 +8073,7 @@ Client · static files
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + vectored SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
ReadTimeoutMs = 60_000, // close a connection whose read waits this long on a silent peer; 0 = off
SendTimeoutMs = 60_000, // close a connection whose flush takes this long to go out; 0 = off
},
diff --git a/docs/learn/architecture.html b/docs/learn/architecture.html
index 189f02d4..e794e115 100644
--- a/docs/learn/architecture.html
+++ b/docs/learn/architecture.html
@@ -176,7 +176,7 @@ Configuration
Tcp.ListenBacklog | 1024 | accept-queue depth per listener |
Tcp.WriteSlabSize | 16 KB | per-connection write buffer |
Tcp.PoolMax | 1024 | pooled connection objects per reactor (bounds native memory) |
- Tcp.RecvQueueEntries | 4096 | per-connection slice queue depth; each queued slice holds a recv buffer; overflow closes the connection and readers see an error |
+ Tcp.RecvQueueEntries | 64 | per-connection slice queue depth; each queued slice holds a recv buffer; overflow closes the connection and readers see an error |
Udp.Ports | [] | raw UDP sockets; datagrams reach Reactor.OnDatagram |
Udp.RecvSlots | 16 | shared UDP provided-buffer ring depth (in-flight datagrams) |
Udp.Gro | true | UDP_GRO: coalesce equal-size datagram bursts into one completion |
diff --git a/docs/learn/multiport.html b/docs/learn/multiport.html
index 5bb7c34d..01abb541 100644
--- a/docs/learn/multiport.html
+++ b/docs/learn/multiport.html
@@ -66,7 +66,7 @@ Configuration
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
},
};
With no ExtraPorts, behaviour is exactly as before - one listener, one accept.
diff --git a/docs/learn/tls.html b/docs/learn/tls.html
index 1f74d47a..19b241f8 100644
--- a/docs/learn/tls.html
+++ b/docs/learn/tls.html
@@ -101,7 +101,7 @@
Setup
PoolMax = 1024, // pooled connection objects kept per reactor
WriteOverflow = WriteOverflowStrategy.Grow, // Grow = realloc one slab; Segmented = chain + SENDMSG
ZeroCopySend = false, // SEND_ZC: kernel copies less, wins on large writes
- RecvQueueEntries = 4096, // per-connection recv completion queue depth
+ RecvQueueEntries = 64, // per-connection recv completion queue depth
},
};
diff --git a/src/clients/ioxide.file/ioxide.file.csproj b/src/clients/ioxide.file/ioxide.file.csproj
index 4a676cbe..8b9d17bb 100644
--- a/src/clients/ioxide.file/ioxide.file.csproj
+++ b/src/clients/ioxide.file/ioxide.file.csproj
@@ -8,7 +8,7 @@
ioxide.file
ioxide.file
- 0.17.339
+ 0.17.340
MDA2AV
File serving for the ioxide io_uring runtime: immutable asset snapshots with baked responses, pooled positional ring reads, atomic reloads.
MIT
diff --git a/src/clients/ioxide.httpclient/ioxide.httpclient.csproj b/src/clients/ioxide.httpclient/ioxide.httpclient.csproj
index dac15ede..f18de7b2 100644
--- a/src/clients/ioxide.httpclient/ioxide.httpclient.csproj
+++ b/src/clients/ioxide.httpclient/ioxide.httpclient.csproj
@@ -8,7 +8,7 @@
ioxide.httpclient
ioxide.httpclient
- 0.17.339
+ 0.17.340
MDA2AV
The ring-native HTTP/1.1 client for the ioxide io_uring runtime - the upstream leg between a proxy and an origin. Connections are opened on the reactor thread that will use them, so a request never crosses a thread on its way out or back, and every response resumes the awaiting handler inline on its own reactor. Includes client-side TLS (SNI, ALPN, certificate verification and client certificates for mutual TLS) for https:// origins. Depends on ioxide core alone: no protocol package, no native asset.
MIT
diff --git a/src/clients/ioxide.pg/ioxide.pg.csproj b/src/clients/ioxide.pg/ioxide.pg.csproj
index e892dcd4..69b58bb0 100644
--- a/src/clients/ioxide.pg/ioxide.pg.csproj
+++ b/src/clients/ioxide.pg/ioxide.pg.csproj
@@ -8,7 +8,7 @@
ioxide.pg
ioxide.pg
- 0.17.339
+ 0.17.340
MDA2AV
Postgres driver for the ioxide io_uring runtime: pooled ring-native connections per reactor, ring-native connect and handshake, inline completion resume.
MIT
diff --git a/src/clients/ioxide.redis.stackexchange/ioxide.redis.stackexchange.csproj b/src/clients/ioxide.redis.stackexchange/ioxide.redis.stackexchange.csproj
index ffdb83f8..8dd1d5f4 100644
--- a/src/clients/ioxide.redis.stackexchange/ioxide.redis.stackexchange.csproj
+++ b/src/clients/ioxide.redis.stackexchange/ioxide.redis.stackexchange.csproj
@@ -16,7 +16,7 @@
$(NoWarn);SER009
ioxide.redis.stackexchange
- 0.17.339
+ 0.17.340
MDA2AV
Experimental: StackExchange.Redis over the ioxide io_uring runtime. A Tunnel whose transport is a socket on a reactor's ring, so a multiplexer's connections connect, send and receive on that reactor and complete commands on its thread. Built on StackExchange.Redis's experimental transport seam (SER009) and pinned to one StackExchange.Redis version.
MIT
diff --git a/src/clients/ioxide.timer/ioxide.timer.csproj b/src/clients/ioxide.timer/ioxide.timer.csproj
index 0d8e87f2..21ff1139 100644
--- a/src/clients/ioxide.timer/ioxide.timer.csproj
+++ b/src/clients/ioxide.timer/ioxide.timer.csproj
@@ -8,7 +8,7 @@
ioxide.timer
ioxide.timer
- 0.17.339
+ 0.17.340
MDA2AV
Deadlines for the ioxide io_uring runtime: waits submitted to the reactor's own ring with IORING_OP_TIMEOUT, completing inline on the reactor that owns the caller, with no timer thread and nothing allocated per wait.
MIT
diff --git a/src/ioxide/Reactor/Transport/Tcp/TcpOptions.cs b/src/ioxide/Reactor/Transport/Tcp/TcpOptions.cs
index 07cb21ac..6b43cb35 100644
--- a/src/ioxide/Reactor/Transport/Tcp/TcpOptions.cs
+++ b/src/ioxide/Reactor/Transport/Tcp/TcpOptions.cs
@@ -46,8 +46,10 @@ public sealed record TcpOptions
// Per-connection SPSC recv queue depth (power of two), about 24 bytes a slot. Each queued delivery
// holds one of the reactor's recv buffers until the handler reads it, so in shared mode one connection
// can hold this many of RecvSlots. Overflow drops the delivery that did not fit and closes the
- // connection, which its readers report as an error (TcpConnection.RecvOverflowed).
- public int RecvQueueEntries { get; init; } = 4096;
+ // connection, which its readers report as an error (TcpConnection.RecvOverflowed). The queue is
+ // sized up front for every connection, pooled ones included, so the default stays small; raise it
+ // for a handler that lets its peer get further ahead.
+ public int RecvQueueEntries { get; init; } = 64;
///
/// Close a connection whose read has waited this long for the peer. 0 disables.
diff --git a/src/ioxide/ioxide.csproj b/src/ioxide/ioxide.csproj
index b584cbb0..0ebdda4d 100644
--- a/src/ioxide/ioxide.csproj
+++ b/src/ioxide/ioxide.csproj
@@ -8,7 +8,7 @@
ioxide
ioxide
- 0.17.339
+ 0.17.340
MDA2AV
A shared-nothing io_uring runtime for .NET: one ring per reactor thread, inline completions, zero native dependencies. The engine - reactor, connection, and the IRingHost client seam. Includes TLS termination: the OpenSSL handshake driven over the ring, then kernel TLS (kTLS) transmit offload, so handlers keep writing plaintext. TLS needs OpenSSL 3 and the Linux tls module; nothing else does, and neither is loaded unless you use it.
MIT
diff --git a/src/protocols/ioxide.http2/ioxide.http2.csproj b/src/protocols/ioxide.http2/ioxide.http2.csproj
index 2500ee11..44de59f2 100644
--- a/src/protocols/ioxide.http2/ioxide.http2.csproj
+++ b/src/protocols/ioxide.http2/ioxide.http2.csproj
@@ -8,7 +8,7 @@
ioxide.http2
ioxide.http2
- 0.17.339
+ 0.17.340
MDA2AV
Pure-C# HTTP/2 for the ioxide io_uring runtime: framing, HPACK (static and dynamic tables, Huffman) and flow control, with zero native code. Serves h2c with prior knowledge and h2 over TLS by ALPN, buffered or streamed in either direction.
MIT
diff --git a/src/protocols/ioxide.http3/ioxide.http3.csproj b/src/protocols/ioxide.http3/ioxide.http3.csproj
index 5e1a950e..161031d7 100644
--- a/src/protocols/ioxide.http3/ioxide.http3.csproj
+++ b/src/protocols/ioxide.http3/ioxide.http3.csproj
@@ -8,7 +8,7 @@
ioxide.http3
ioxide.http3
- 0.17.339
+ 0.17.340
MDA2AV
Pure C# HTTP/3 for the ioxide io_uring runtime: frame parsing, QPACK (static table + Huffman) and request dispatch with zero native dependencies. Rides any QuicConnection via its stream read surface - engine-agnostic, drop-in alternative to ioxide.nghttp3.
MIT
diff --git a/src/protocols/ioxide.nghttp2/ioxide.nghttp2.csproj b/src/protocols/ioxide.nghttp2/ioxide.nghttp2.csproj
index 57469b15..d4f0e627 100644
--- a/src/protocols/ioxide.nghttp2/ioxide.nghttp2.csproj
+++ b/src/protocols/ioxide.nghttp2/ioxide.nghttp2.csproj
@@ -8,7 +8,7 @@
ioxide.nghttp2
ioxide.nghttp2
- 0.17.339
+ 0.17.340
MDA2AV
HTTP/2 for the ioxide io_uring runtime: framing, HPACK and flow control from nghttp2, statically linked behind a small shim with no external dependencies beyond libc. Serves HTTP/2 over any TcpConnection - h2c with prior knowledge, or h2 over TLS via ALPN. nghttp2 is sans-I/O, so ioxide keeps the ring and the loop.
MIT
diff --git a/src/protocols/ioxide.nghttp3/ioxide.nghttp3.csproj b/src/protocols/ioxide.nghttp3/ioxide.nghttp3.csproj
index 4275214d..79ead36c 100644
--- a/src/protocols/ioxide.nghttp3/ioxide.nghttp3.csproj
+++ b/src/protocols/ioxide.nghttp3/ioxide.nghttp3.csproj
@@ -8,7 +8,7 @@
ioxide.nghttp3
ioxide.nghttp3
- 0.17.339
+ 0.17.340
MDA2AV
HTTP/3 layer for the ioxide io_uring runtime: nghttp3 (H3 + QPACK) bundled as a single self-contained native library with no external dependencies. Rides any QuicConnection via its stream read surface - engine-agnostic, no ioxide.ngtcp2 dependency.
MIT
diff --git a/src/protocols/ioxide.ngtcp2/ioxide.ngtcp2.csproj b/src/protocols/ioxide.ngtcp2/ioxide.ngtcp2.csproj
index 82361573..40e44854 100644
--- a/src/protocols/ioxide.ngtcp2/ioxide.ngtcp2.csproj
+++ b/src/protocols/ioxide.ngtcp2/ioxide.ngtcp2.csproj
@@ -8,7 +8,7 @@
ioxide.ngtcp2
ioxide.ngtcp2
- 0.17.339
+ 0.17.340
MDA2AV
QUIC engine for the ioxide io_uring runtime: ngtcp2 + picotls bundled as a single self-contained native library (only system dependency: libcrypto.so.3 / OpenSSL 3.x). Plugs into the reactor's QUIC transport via QuicConnection. Server side; engine bindings in progress.
MIT
diff --git a/src/serving/ioxide.Kestrel/ioxide.Kestrel.csproj b/src/serving/ioxide.Kestrel/ioxide.Kestrel.csproj
index 614b08a3..0129257e 100644
--- a/src/serving/ioxide.Kestrel/ioxide.Kestrel.csproj
+++ b/src/serving/ioxide.Kestrel/ioxide.Kestrel.csproj
@@ -8,7 +8,7 @@
ioxide.Kestrel
ioxide.Kestrel
- 0.17.339
+ 0.17.340
MDA2AV
ASP.NET Core Kestrel transport backed by the ioxide io_uring runtime: one reactor (ring) per core, SO_REUSEPORT load-balanced, with Kestrel's HTTP request loop pinned to the reactor thread. Drop-in via UseIoxide().
MIT