]> git.kaiwu.me - haproxy.git/commit
MEDIUM: pipes: Have one pool of free pipes per thread group
authorOlivier Houchard <ohouchard@haproxy.com>
Tue, 28 Jul 2026 11:37:12 +0000 (13:37 +0200)
committerOlivier Houchard <cognet@ci0.org>
Thu, 30 Jul 2026 11:35:22 +0000 (13:35 +0200)
commitc81d794822cf8fa3c2e163cbf4cba80ad0dd9a47
tree2469158fe07c9f328f8e87af9e0cb846c39b0f1b
parenta39eb11afd7dcdb8af5f1f41f157882b6f6570cd
MEDIUM: pipes: Have one pool of free pipes per thread group

The pipes used for splicing are kept in a shared pool of free pipes, so
that they can be reused by any thread. However, with per-thread-group
FD tables, a pipe created by one group only exists in that group's
kernel table, so its FDs must never be handed over to a thread of
another group.
To fix that, replace the global list of free pipes with one list per
thread group if the fd tables are not shared across thread groups.
src/pipe.c