]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: spoe: Use the new _HA_ATOMIC_* macros.
authorOlivier Houchard <ohouchard@haproxy.com>
Fri, 8 Mar 2019 17:50:42 +0000 (18:50 +0100)
committerOlivier Houchard <cognet@ci0.org>
Mon, 11 Mar 2019 16:02:38 +0000 (17:02 +0100)
Use the new _HA_ATOMIC_* macros and add barriers where needed.

src/flt_spoe.c

index 1a1194fa6805c432f39856e043b3d6e3bacead09..437f025a1b5be5f44a356a880938c651c5556c65 100644 (file)
@@ -1250,7 +1250,7 @@ spoe_release_appctx(struct appctx *appctx)
                    __FUNCTION__, appctx);
 
        /* Remove applet from the list of running applets */
-       HA_ATOMIC_SUB(&agent->counters.applets, 1);
+       _HA_ATOMIC_SUB(&agent->counters.applets, 1);
        HA_SPIN_LOCK(SPOE_APPLET_LOCK, &agent->rt[tid].lock);
        if (!LIST_ISEMPTY(&spoe_appctx->list)) {
                LIST_DEL(&spoe_appctx->list);
@@ -1262,7 +1262,7 @@ spoe_release_appctx(struct appctx *appctx)
        if (appctx->st0 != SPOE_APPCTX_ST_END) {
                if (appctx->st0 == SPOE_APPCTX_ST_IDLE) {
                        eb32_delete(&spoe_appctx->node);
-                       HA_ATOMIC_SUB(&agent->counters.idles, 1);
+                       _HA_ATOMIC_SUB(&agent->counters.idles, 1);
                }
 
                appctx->st0 = SPOE_APPCTX_ST_END;
@@ -1284,7 +1284,7 @@ spoe_release_appctx(struct appctx *appctx)
        list_for_each_entry_safe(ctx, back, &spoe_appctx->waiting_queue, list) {
                LIST_DEL(&ctx->list);
                LIST_INIT(&ctx->list);
-               HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
+               _HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
                spoe_update_stat_time(&ctx->stats.tv_wait, &ctx->stats.t_waiting);
                ctx->state = SPOE_CTX_ST_ERROR;
                ctx->status_code = (spoe_appctx->status_code + 0x100);
@@ -1313,7 +1313,7 @@ spoe_release_appctx(struct appctx *appctx)
        list_for_each_entry_safe(ctx, back, &agent->rt[tid].sending_queue, list) {
                LIST_DEL(&ctx->list);
                LIST_INIT(&ctx->list);
-               HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
+               _HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
                spoe_update_stat_time(&ctx->stats.tv_queue, &ctx->stats.t_queue);
                ctx->state = SPOE_CTX_ST_ERROR;
                ctx->status_code = (spoe_appctx->status_code + 0x100);
@@ -1322,7 +1322,7 @@ spoe_release_appctx(struct appctx *appctx)
        list_for_each_entry_safe(ctx, back, &agent->rt[tid].waiting_queue, list) {
                LIST_DEL(&ctx->list);
                LIST_INIT(&ctx->list);
-               HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
+               _HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
                spoe_update_stat_time(&ctx->stats.tv_wait, &ctx->stats.t_waiting);
                ctx->state = SPOE_CTX_ST_ERROR;
                ctx->status_code = (spoe_appctx->status_code + 0x100);
@@ -1446,7 +1446,7 @@ spoe_handle_connecting_appctx(struct appctx *appctx)
                default:
                        /* HELLO handshake is finished, set the idle timeout and
                         * add the applet in the list of running applets. */
-                       HA_ATOMIC_ADD(&agent->counters.idles, 1);
+                       _HA_ATOMIC_ADD(&agent->counters.idles, 1);
                        appctx->st0 = SPOE_APPCTX_ST_IDLE;
                        SPOE_APPCTX(appctx)->node.key = 0;
                        eb32_insert(&agent->rt[tid].idle_applets, &SPOE_APPCTX(appctx)->node);
@@ -1516,7 +1516,7 @@ spoe_handle_sending_frame_appctx(struct appctx *appctx, int *skip)
                        spoe_release_buffer(&ctx->buffer, &ctx->buffer_wait);
                        LIST_DEL(&ctx->list);
                        LIST_INIT(&ctx->list);
-                       HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
+                       _HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
                        spoe_update_stat_time(&ctx->stats.tv_queue, &ctx->stats.t_queue);
                        ctx->spoe_appctx = NULL;
                        ctx->state = SPOE_CTX_ST_ERROR;
@@ -1536,7 +1536,7 @@ spoe_handle_sending_frame_appctx(struct appctx *appctx, int *skip)
                        spoe_release_buffer(&ctx->buffer, &ctx->buffer_wait);
                        LIST_DEL(&ctx->list);
                        LIST_INIT(&ctx->list);
-                       HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
+                       _HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
                        spoe_update_stat_time(&ctx->stats.tv_queue, &ctx->stats.t_queue);
                        ctx->spoe_appctx = SPOE_APPCTX(appctx);
                        if (!(ctx->flags & SPOE_CTX_FL_FRAGMENTED) ||
@@ -1571,7 +1571,7 @@ spoe_handle_sending_frame_appctx(struct appctx *appctx, int *skip)
                *skip = 1;
                LIST_ADDQ(&SPOE_APPCTX(appctx)->waiting_queue, &ctx->list);
        }
-       HA_ATOMIC_ADD(&agent->counters.nb_waiting, 1);
+       _HA_ATOMIC_ADD(&agent->counters.nb_waiting, 1);
        ctx->stats.tv_wait = now;
        SPOE_APPCTX(appctx)->frag_ctx.ctx    = NULL;
        SPOE_APPCTX(appctx)->frag_ctx.cursid = 0;
@@ -1627,7 +1627,7 @@ spoe_handle_receiving_frame_appctx(struct appctx *appctx, int *skip)
                default:
                        LIST_DEL(&ctx->list);
                        LIST_INIT(&ctx->list);
-                       HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
+                       _HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
                        spoe_update_stat_time(&ctx->stats.tv_wait, &ctx->stats.t_waiting);
                        ctx->stats.tv_response = now;
                        if (ctx->spoe_appctx) {
@@ -1733,7 +1733,7 @@ spoe_handle_processing_appctx(struct appctx *appctx)
        }
 
        if (appctx->st0 == SPOE_APPCTX_ST_PROCESSING && SPOE_APPCTX(appctx)->cur_fpa < agent->max_fpa) {
-               HA_ATOMIC_ADD(&agent->counters.idles, 1);
+               _HA_ATOMIC_ADD(&agent->counters.idles, 1);
                appctx->st0 = SPOE_APPCTX_ST_IDLE;
                eb32_insert(&agent->rt[tid].idle_applets, &SPOE_APPCTX(appctx)->node);
        }
@@ -1896,7 +1896,7 @@ spoe_handle_appctx(struct appctx *appctx)
                        goto switchstate;
 
                case SPOE_APPCTX_ST_IDLE:
-                       HA_ATOMIC_SUB(&agent->counters.idles, 1);
+                       _HA_ATOMIC_SUB(&agent->counters.idles, 1);
                        eb32_delete(&SPOE_APPCTX(appctx)->node);
                        if (stopping &&
                            LIST_ISEMPTY(&agent->rt[tid].sending_queue) &&
@@ -2013,7 +2013,7 @@ spoe_create_appctx(struct spoe_config *conf)
        HA_SPIN_LOCK(SPOE_APPLET_LOCK, &conf->agent->rt[tid].lock);
        LIST_ADDQ(&conf->agent->rt[tid].applets, &SPOE_APPCTX(appctx)->list);
        HA_SPIN_UNLOCK(SPOE_APPLET_LOCK, &conf->agent->rt[tid].lock);
-       HA_ATOMIC_ADD(&conf->agent->counters.applets, 1);
+       _HA_ATOMIC_ADD(&conf->agent->counters.applets, 1);
 
        task_wakeup(SPOE_APPCTX(appctx)->task, TASK_WOKEN_INIT);
        task_wakeup(strm->task, TASK_WOKEN_INIT);
@@ -2098,7 +2098,7 @@ spoe_queue_context(struct spoe_context *ctx)
 
        /* Add the SPOE context in the sending queue */
        LIST_ADDQ(&agent->rt[tid].sending_queue, &ctx->list);
-       HA_ATOMIC_ADD(&agent->counters.nb_sending, 1);
+       _HA_ATOMIC_ADD(&agent->counters.nb_sending, 1);
        spoe_update_stat_time(&ctx->stats.tv_request, &ctx->stats.t_request);
        ctx->stats.tv_queue = now;
 
@@ -2582,7 +2582,7 @@ spoe_stop_processing(struct spoe_agent *agent, struct spoe_context *ctx)
 
        if (!(ctx->flags & SPOE_CTX_FL_PROCESS))
                return;
-       HA_ATOMIC_ADD(&agent->counters.nb_processed, 1);
+       _HA_ATOMIC_ADD(&agent->counters.nb_processed, 1);
        if (sa) {
                if (sa->frag_ctx.ctx == ctx) {
                        sa->frag_ctx.ctx = NULL;
@@ -2609,9 +2609,9 @@ spoe_stop_processing(struct spoe_agent *agent, struct spoe_context *ctx)
 
        if (!LIST_ISEMPTY(&ctx->list)) {
                if (ctx->state == SPOE_CTX_ST_SENDING_MSGS)
-                       HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
+                       _HA_ATOMIC_SUB(&agent->counters.nb_sending, 1);
                else
-                       HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
+                       _HA_ATOMIC_SUB(&agent->counters.nb_waiting, 1);
 
                LIST_DEL(&ctx->list);
                LIST_INIT(&ctx->list);
@@ -2716,7 +2716,7 @@ spoe_process_messages(struct stream *s, struct spoe_context *ctx,
        spoe_update_stats(s, agent, ctx, dir);
        spoe_stop_processing(agent, ctx);
        if (ctx->status_code) {
-               HA_ATOMIC_ADD(&agent->counters.nb_errors, 1);
+               _HA_ATOMIC_ADD(&agent->counters.nb_errors, 1);
                spoe_handle_processing_error(s, agent, ctx, dir);
                ret = 1;
        }