MINOR: server: don't read curr_used_conns multiple times
This one is added atomically and we reread it just after this, causing
a second memory load that is visible in the perf profile.
diff --git a/include/haproxy/server.h b/include/haproxy/server.h
index 2c5d979..4892abd 100644
--- a/include/haproxy/server.h
+++ b/include/haproxy/server.h
@@ -247,16 +247,18 @@
static inline void srv_use_conn(struct server *srv, struct connection *conn)
{
- _HA_ATOMIC_ADD(&srv->curr_used_conns, 1);
+ unsigned int curr;
+
+ curr = _HA_ATOMIC_ADD(&srv->curr_used_conns, 1);
/* It's ok not to do that atomically, we don't need an
* exact max.
*/
- if (srv->max_used_conns < srv->curr_used_conns)
- srv->max_used_conns = srv->curr_used_conns;
+ if (srv->max_used_conns < curr)
+ srv->max_used_conns = curr;
- if (srv->est_need_conns < srv->curr_used_conns)
- srv->est_need_conns = srv->curr_used_conns;
+ if (srv->est_need_conns < curr)
+ srv->est_need_conns = curr;
}
static inline void conn_delete_from_tree(struct ebmb_node *node)