mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +02:00
The "goto redo" at the end of process_stream() to make the states converge is still a big source of problems and mostly stems from the very late call to the send() functions, whose results need to be considered, while it's being done in si_update_both() when leaving. This patch extracts the si_sync_send() calls from si_update_both(), and places them at the relevant places in process_stream(), which are just after the amount of data to forward is updated and before the shutw() calls (which were also moved). The stream-interface resynchronization needs to go slightly upper to take into account the transition from CON to RDY that will happen consecutive to some successful send(), and that's all. By doing so we can now get rid of this loop and have si_update_both() called only to update the stream interface and channel when leaving the function, as it was initially designed to work. It is worth noting that a number of the remaining conditions to perform a goto resync_XXX still seem suboptimal and would benefit from being refined to perform les resynchronization. But what matters at this stage is that the code remains valid and efficient. |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
contrib | ||
doc | ||
ebtree | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
ROADMAP | ||
SUBVERS | ||
VERDATE | ||
VERSION |
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 - 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)