* will still both receive traffic. If any server is found, it will be returned.
* It will also skip server <avoid> if the hash result ends on this one.
* If no valid server is found, NULL is returned.
+ *
+ * The lbprm's lock will be used in R/O mode. The server's lock is not used.
*/
struct server *chash_get_server_hash(struct proxy *p, unsigned int hash, const struct server *avoid)
{
/* Return next server from the CHASH tree in backend <p>. If the tree is empty,
* return NULL. Saturated servers are skipped.
+ *
+ * The lbprm's lock will be used in R/W mode. The server's lock is not used.
*/
struct server *chash_get_next_server(struct proxy *p, struct server *srvtoavoid)
{
/* Return next server from the FS tree in backend <p>. If the tree is empty,
* return NULL. Saturated servers are skipped.
*
- * The server's lock must be held. The lbprm's lock will be used.
+ * The lbprm's lock will be used. The server's lock is not used.
*/
struct server *fas_get_next_server(struct proxy *p, struct server *srvtoavoid)
{
/* Return next server from the FWLC tree in backend <p>. If the tree is empty,
* return NULL. Saturated servers are skipped.
*
- * The server's lock must be held. The lbprm's lock will be used.
+ * The lbprm's lock will be used in R/O mode. The server's lock is not used.
*/
struct server *fwlc_get_next_server(struct proxy *p, struct server *srvtoavoid)
{
* the init tree if appropriate. If both trees are empty, return NULL.
* Saturated servers are skipped and requeued.
*
- * The lbprm's lock will be used. The server's lock is not used.
+ * The lbprm's lock will be used in R/W mode. The server's lock is not used.
*/
struct server *fwrr_get_next_server(struct proxy *p, struct server *srvtoavoid)
{