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.
diff --git a/src/backend.c b/src/backend.c
index f87e36e..0faf724 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1099,6 +1099,9 @@
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) {