]> git.kaiwu.me - haproxy.git/commit
MEDIUM: listener: Properly handle unshared fd tables between tgroups
authorOlivier Houchard <ohouchard@haproxy.com>
Tue, 7 Jul 2026 08:55:57 +0000 (10:55 +0200)
committerOlivier Houchard <cognet@ci0.org>
Thu, 30 Jul 2026 11:35:22 +0000 (13:35 +0200)
commit2e6ff48da257411b5a7c8e542a7a4c94b6841400
tree7df0cfbef80c6e9f172fcd4a122d24867dd7823c
parenta2547e15cb05cd3d363d290d20f86b876047c14a
MEDIUM: listener: Properly handle unshared fd tables between tgroups

With different FD tables for each thread group, a new mechanism is
needed to get each thread group to close/open their fds, and to transfer
fds from one thread group to another.
So we add the concept of rx agents. Each thread group has a tasklet
dedicated to that, bound to the first thread of each thread group, and
are used to get those operations done.
Each receiver contains context bits so that the tasklet will know which
action to do when woken up.
A new socketpair is also created per group, to be able to send fds to other
thread groups.
include/haproxy/listener.h
include/haproxy/protocol.h
include/haproxy/receiver-t.h
src/haproxy.c
src/listener.c
src/protocol.c
src/proxy.c
src/sock.c
src/sock_inet.c
src/sock_unix.c