mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 16:47:18 +02:00
The FD's tgid is refcounted and must be atomically manipulated. Function fd_grab_tgid() will increase the refcount but only if the tgid matches the one in argument (likely the current one). fd_claim_tgid() will be used to self-assign the tgid after waiting for its refcount to reach zero. fd_drop_tgid() will be used to drop a temporarily held tgid. All of these are needed to prevent an FD from being reassigned to another group, either when inspecting/modifying the running_mask, or when checking for updates, in order to be certain that the mask being seen corresponds to the desired group. Note that once at least one bit is set in the running mask of an active FD, it cannot be closed, thus not migrated, thus the reference does not need to be held long. |
||
---|---|---|
.. | ||
haproxy | ||
import |