From: Olivier Houchard Date: Fri, 8 Mar 2019 17:52:46 +0000 (+0100) Subject: MEDIUM: lb/threads: Use the new _HA_ATOMIC_* macros. X-Git-Tag: v2.0-dev2~82 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=36a8e6f9702539f838a58525a33a4698849c2524;p=haproxy-2.1.git MEDIUM: lb/threads: Use the new _HA_ATOMIC_* macros. Use the new _HA_ATOMIC_* macros and add barriers where needed. --- diff --git a/src/lb_fwrr.c b/src/lb_fwrr.c index 3532279..9a2ebe1 100644 --- a/src/lb_fwrr.c +++ b/src/lb_fwrr.c @@ -354,7 +354,7 @@ static void fwrr_queue_srv(struct server *s) s->npos >= grp->curr_weight + grp->next_weight) { /* put into next tree, and readjust npos in case we could * finally take this back to current. */ - HA_ATOMIC_SUB(&s->npos, grp->curr_weight); + _HA_ATOMIC_SUB(&s->npos, grp->curr_weight); fwrr_queue_by_weight(grp->next, s); } else { @@ -392,7 +392,7 @@ static inline void fwrr_get_srv_next(struct server *s) &s->proxy->lbprm.fwrr.bck : &s->proxy->lbprm.fwrr.act; - HA_ATOMIC_ADD(&s->npos, grp->curr_weight); + _HA_ATOMIC_ADD(&s->npos, grp->curr_weight); } /* prepares a server when it was marked down. @@ -487,20 +487,20 @@ static inline void fwrr_update_position(struct fwrr_group *grp, struct server *s /* first time ever for this server */ s->lpos = grp->curr_pos; s->npos = grp->curr_pos + grp->next_weight / s->cur_eweight; - HA_ATOMIC_ADD(&s->rweight, (grp->next_weight % s->cur_eweight)); + _HA_ATOMIC_ADD(&s->rweight, (grp->next_weight % s->cur_eweight)); if (s->rweight >= s->cur_eweight) { - HA_ATOMIC_SUB(&s->rweight, s->cur_eweight); - HA_ATOMIC_ADD(&s->npos, 1); + _HA_ATOMIC_SUB(&s->rweight, s->cur_eweight); + _HA_ATOMIC_ADD(&s->npos, 1); } } else { s->lpos = s->npos; - HA_ATOMIC_ADD(&s->npos, (grp->next_weight / s->cur_eweight)); - HA_ATOMIC_ADD(&s->rweight, (grp->next_weight % s->cur_eweight)); + _HA_ATOMIC_ADD(&s->npos, (grp->next_weight / s->cur_eweight)); + _HA_ATOMIC_ADD(&s->rweight, (grp->next_weight % s->cur_eweight)); if (s->rweight >= s->cur_eweight) { - HA_ATOMIC_SUB(&s->rweight, s->cur_eweight); - HA_ATOMIC_ADD(&s->npos, 1); + _HA_ATOMIC_SUB(&s->rweight, s->cur_eweight); + _HA_ATOMIC_ADD(&s->npos, 1); } } } diff --git a/src/lb_map.c b/src/lb_map.c index 4b992d3..245af00 100644 --- a/src/lb_map.c +++ b/src/lb_map.c @@ -123,7 +123,7 @@ void recalc_server_map(struct proxy *px) break; } - HA_ATOMIC_ADD(&cur->wscore, cur->next_eweight); + _HA_ATOMIC_ADD(&cur->wscore, cur->next_eweight); v = (cur->wscore + tot) / tot; /* result between 0 and 3 */ if (best == NULL || v > max) { max = v; @@ -133,7 +133,7 @@ void recalc_server_map(struct proxy *px) } px->lbprm.map.srv[o] = best; if (best) - HA_ATOMIC_SUB(&best->wscore, tot); + _HA_ATOMIC_SUB(&best->wscore, tot); } }