MINOR: connections: Make the "list" element a struct mt_list instead of list.
Make the "list" element a struct mt_list, and explicitely use
list_from_mt_list to get a struct list * where it is used as such, so that
mt_list_for_each_entry will be usable with it.
diff --git a/include/proto/connection.h b/include/proto/connection.h
index 2118d23..65c99a1 100644
--- a/include/proto/connection.h
+++ b/include/proto/connection.h
@@ -318,7 +318,7 @@
conn->target = NULL;
conn->destroy_cb = NULL;
conn->proxy_netns = NULL;
- LIST_INIT(&conn->list);
+ MT_LIST_INIT(&conn->list);
LIST_INIT(&conn->session_list);
conn->subs = NULL;
conn->idle_time = 0;
diff --git a/include/proto/server.h b/include/proto/server.h
index 06f553e..ca794ab 100644
--- a/include/proto/server.h
+++ b/include/proto/server.h
@@ -261,7 +261,7 @@
_HA_ATOMIC_SUB(&srv->curr_idle_conns, 1);
return 0;
}
- LIST_DEL_INIT(&conn->list);
+ MT_LIST_DEL(&conn->list);
MT_LIST_ADDQ(is_safe ? &srv->safe_conns[tid] : &srv->idle_conns[tid],
(struct mt_list *)&conn->list);
srv->curr_idle_thr[tid]++;
diff --git a/include/types/connection.h b/include/types/connection.h
index 0136be9..32a8590 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -458,7 +458,7 @@
/* second cache line */
struct wait_event *subs; /* Task to wake when awaited events are ready */
- struct list list; /* attach point to various connection lists (idle, ...) */
+ struct mt_list list; /* attach point to various connection lists (idle, ...) */
struct list session_list; /* List of attached connections to a session */
union conn_handle handle; /* connection handle at the socket layer */
const struct netns_entry *proxy_netns;
diff --git a/src/backend.c b/src/backend.c
index 2fc7a3f..b60e900 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1251,7 +1251,7 @@
_HA_ATOMIC_SUB(&srv->curr_idle_conns, 1);
__ha_barrier_atomic_store();
srv->curr_idle_thr[tid]--;
- LIST_ADDQ(&srv->available_conns[tid], &srv_conn->list);
+ LIST_ADDQ(&srv->available_conns[tid], mt_list_to_list(&srv_conn->list));
}
else {
if (srv_conn->flags & CO_FL_SESS_IDLE) {
@@ -1269,8 +1269,7 @@
if (avail <= 1) {
/* No more streams available, remove it from the list */
- LIST_DEL(&srv_conn->list);
- LIST_INIT(&srv_conn->list);
+ MT_LIST_DEL(&srv_conn->list);
}
if (avail >= 1) {
@@ -1404,7 +1403,7 @@
*/
if (srv && ((s->be->options & PR_O_REUSE_MASK) == PR_O_REUSE_ALWS) &&
srv_conn->mux->avail_streams(srv_conn) > 0)
- LIST_ADD(&srv->available_conns[tid], &srv_conn->list);
+ LIST_ADDQ(&srv->available_conns[tid], mt_list_to_list(&srv_conn->list));
}
/* The CO_FL_SEND_PROXY flag may have been set by the connect method,
* if so, add our handshake pseudo-XPRT now.
diff --git a/src/connection.c b/src/connection.c
index 55b7031..45d81d8 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -55,7 +55,7 @@
srv = objt_server(conn->target);
if (srv && ((srv->proxy->options & PR_O_REUSE_MASK) != PR_O_REUSE_NEVR) &&
conn->mux->avail_streams(conn) > 0)
- LIST_ADD(&srv->available_conns[tid], &conn->list);
+ LIST_ADDQ(&srv->available_conns[tid], mt_list_to_list(&conn->list));
return 0;
fail:
/* let the upper layer know the connection failed */
diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c
index 3082d4b..904ce85 100644
--- a/src/mux_fcgi.c
+++ b/src/mux_fcgi.c
@@ -3507,9 +3507,9 @@
TRACE_DEVEL("reusable idle connection", FCGI_EV_STRM_END, fconn->conn);
return;
}
- } else if (LIST_ISEMPTY(&fconn->conn->list) &&
+ } else if (MT_LIST_ISEMPTY(&fconn->conn->list) &&
fcgi_avail_streams(fconn->conn) > 0 && objt_server(fconn->conn->target)) {
- LIST_ADD(&__objt_server(fconn->conn->target)->available_conns[tid], &fconn->conn->list);
+ LIST_ADD(&__objt_server(fconn->conn->target)->available_conns[tid], mt_list_to_list(&fconn->conn->list));
}
}
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 47b9068..0d42324 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -3906,9 +3906,9 @@
return;
}
- } else if (LIST_ISEMPTY(&h2c->conn->list) &&
+ } else if (MT_LIST_ISEMPTY(&h2c->conn->list) &&
h2_avail_streams(h2c->conn) > 0 && objt_server(h2c->conn->target)) {
- LIST_ADD(&__objt_server(h2c->conn->target)->available_conns[tid], &h2c->conn->list);
+ LIST_ADD(&__objt_server(h2c->conn->target)->available_conns[tid], mt_list_to_list(&h2c->conn->list));
}
}
}