mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-03 01:49:24 +00:00
This function is used to allocate a buffer and ensure that we leave some margin after it in the pool. The function is not obvious. While we allocate only one buffer, we want to ensure that at least two remain available after our allocation. The purpose is to ensure we'll never enter a deadlock where all sessions allocate exactly one buffer, and none of them will be able to allocate the second buffer needed to build a response in order to release the first one. We also take care of remaining fast in the the fast path by first checking whether or not there is enough margin, in which case we only rely on b_alloc_fast() which is guaranteed to succeed. Otherwise we take the slow path using pool_refill_alloc(). |
||
---|---|---|
.. | ||
common | ||
import | ||
proto | ||
types |