mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-23 14:51:27 +02:00
Dealing with long-lasting updates that outlive a close() is always going to be quite a problem, not because of the thread that will discover such updates late, but mostly due to the shared update_list that will have an entry on hold making it difficult to reuse it, and requiring that the fd's tgid is changed and the update_mask reset from a safe location. After careful inspection, it turns out that all our pollers that support automatic event removal upon close() do not need any extra bookkeeping, and that poll and select that use an internal representation already provide a poller->clo() callback that is already used to update the local event. As such, it is already safe to reset the update mask and to remove the event from the shared list just before the final close, because nothing remains to be done with this FD by the poller. Doing so considerably simplifies the handling of updates, which will only have to be inspected by the pollers, while the writers can continue to consider that the entries are always valid. Another benefit is that it will be possible to reduce contention on the update_list by just having one update_list per group (left to be done later if needed).
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)
Description
Languages
C
98.1%
Shell
0.8%
Makefile
0.5%
Lua
0.2%
Python
0.2%