mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 15:47:01 +02:00
MINOR: server: skip servers with no idle conns earlier
In conn_backend_get() we can avoid locking other servers when trying to steal their connections when we know for sure they will not have one, so let's do it to lower the contention on the lock.
This commit is contained in:
parent
69f591e3b0
commit
151c253a1e
@ -1099,6 +1099,9 @@ static struct connection *conn_backend_get(struct server *srv, int is_safe)
|
||||
for (i = tid; !found && (i = ((i + 1 == global.nbthread) ? 0 : i + 1)) != tid;) {
|
||||
struct mt_list *elt1, elt2;
|
||||
|
||||
if (!srv->curr_idle_thr[i])
|
||||
continue;
|
||||
|
||||
HA_SPIN_LOCK(OTHER_LOCK, &idle_conns[i].toremove_lock);
|
||||
mt_list_for_each_entry_safe(conn, &mt_list[i], list, elt1, elt2) {
|
||||
if (conn->mux->takeover && conn->mux->takeover(conn) == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user