aboutsummaryrefslogtreecommitdiffstats
path: root/serve
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-01 08:33:47 +0100
committereunhhu <[email protected]>2026-10-01 08:33:47 +0100
commit966b82f0baf8d92e1c16e1767df63cce160fafe1 (patch)
treedeac9b83e3bed35f2e135495605886e757a72e21 /serve
parent02aa5c752cb4704c7b8941c2e58acc359034272a (diff)
downloadpure-966b82f0baf8d92e1c16e1767df63cce160fafe1.tar.gz
pure-966b82f0baf8d92e1c16e1767df63cce160fafe1.zip
Say how sends will share one loop, and what it must show (017, 2b)
Each link and each HTTP wire sends on a thread of its own: a host with twenty outputs runs twenty-one threads more than one without. 2b moves them into one sending loop: an epoll over the links' UDP sockets and the wires' TCP sockets with one wake, waiting until the soonest link timer or wire pause. Links (2b-1) do in the loop what their threads did each round; wires (2b-2) become a non-blocking HTTP/1.1 client state machine, with non-blocking steps added to the crypto table for TLS. A name looked up again still waits where it is, and says so. Before building: every link, wire, answer and seal check green; a host of ten links and ten wires two threads above one without; and link and wire throughput, alternated before and after, no more than 5% lower at the median (four links together: 10%).
Diffstat (limited to 'serve')
0 files changed, 0 insertions, 0 deletions