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;
_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]++;
/* 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;
_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) {
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) {
*/
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.
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 */
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));
}
}
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));
}
}
}