]> git.kaiwu.me - haproxy.git/commit
MEDIUM: pollers: Only allow epoll when each tgroup has its fd table
authorOlivier Houchard <ohouchard@haproxy.com>
Wed, 8 Jul 2026 14:01:36 +0000 (16:01 +0200)
committerOlivier Houchard <cognet@ci0.org>
Thu, 30 Jul 2026 11:35:22 +0000 (13:35 +0200)
commita39eb11afd7dcdb8af5f1f41f157882b6f6570cd
treedfb9ac6db1e766878e4f77c31ca8f8b1ce0bf8eb
parentff8840f28cf5cbe1811f70355f97cbab408b6652
MEDIUM: pollers: Only allow epoll when each tgroup has its fd table

Getting pollers such as select and poll to work when thread groups
unshared their file descriptors would require to have per-thread groups
arrays of file descriptors. Given making each thread group its own file
descriptor table is done for performance reasons, and those pollers will
never perform very well, this does not seem to be worth it.
kqueue and evports would work, except that they are only implemented on
OSes that do not provide the equivalent of the unshare() system call.
So effectively, only epoll can be used as a poller when fds are not
shared across thread groups.
include/haproxy/fd-t.h
src/ev_epoll.c
src/fd.c