diff options
| author | eunhhu <[email protected]> | 2026-09-27 18:56:02 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-27 18:56:02 +0100 |
| commit | 944ab4fe95596127ec3c517037bad8fe6102dfe4 (patch) | |
| tree | a28b4f4e50b08a2f17e131fe826825adfe6acd2d /docs/research/025-native-authoring-shell.md | |
| parent | b469bdaee395a4c49b23d6b3a146ea31ef7c0959 (diff) | |
| download | pure-944ab4fe95596127ec3c517037bad8fe6102dfe4.tar.gz pure-944ab4fe95596127ec3c517037bad8fe6102dfe4.zip | |
Stop reading a connection at a short read
After answering, a connection went back to recv for its next request and
got EAGAIN nearly every time: a failed syscall a request. A recv that
returns less than it asked for has emptied the socket, and the
edge-triggered epoll reports the next bytes when they come (epoll(7); as
nginx does), so the connection now waits for that; a peer that hung up
is read to its end as before.
Small keep-alive GETs, 64 connections, five rounds in rotation
(Raspberry Pi 5): 131.9k/s before this step, 139.9k after. With the
three steps before it (a burst's keys in one look, the clock once a
round, the head without printf): 116.1k -> 139.9k/s, p99 672 -> 512 us,
above the 127.0k of 2026-09-26's build that the app model had since
slowed. App reads: the total 111.5k -> 125.4k/s, a 20-row page 86.2k ->
94.3k; 1 MiB reads and durable posts unchanged.
Diffstat (limited to 'docs/research/025-native-authoring-shell.md')
0 files changed, 0 insertions, 0 deletions
