From: Eric Leblond Date: Mon, 1 Jun 2015 21:14:41 +0000 (+0200) Subject: util-logopenfile: don't use atomic for batch_count X-Git-Tag: suricata-3.0RC1~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b0f2774f2c5d5df0cd0beeb0133ff9c1729bc51;p=thirdparty%2Fsuricata.git util-logopenfile: don't use atomic for batch_count --- diff --git a/src/util-logopenfile.c b/src/util-logopenfile.c index 33f7877720..fe22ed538d 100644 --- a/src/util-logopenfile.c +++ b/src/util-logopenfile.c @@ -338,7 +338,7 @@ static void SCLogFileCloseRedis(LogFileCtx *log_ctx) if (log_ctx->redis) redisFree(log_ctx->redis); log_ctx->redis_setup.tried = 0; - SC_ATOMIC_SET(log_ctx->redis_setup.batch_count, 0); + log_ctx->redis_setup.batch_count = 0; } int SCConfLogOpenRedis(ConfNode *redis_node, LogFileCtx *log_ctx) @@ -447,7 +447,7 @@ int SCConfLogReopenRedis(LogFileCtx *log_ctx) } log_ctx->redis = c; log_ctx->redis_setup.tried = 0; - SC_ATOMIC_SET(log_ctx->redis_setup.batch_count, 0); + log_ctx->redis_setup.batch_count = 0; return 0; } @@ -472,7 +472,7 @@ LogFileCtx *LogFileNewCtx(void) lf_ctx->Close = SCLogFileClose; #ifdef HAVE_LIBHIREDIS - SC_ATOMIC_INIT(lf_ctx->redis_setup.batch_count); + lf_ctx->redis_setup.batch_count = 0; #endif return lf_ctx; @@ -536,9 +536,10 @@ static int LogFileWriteRedis(LogFileCtx *file_ctx, char *string, size_t string_ file_ctx->redis_setup.command, file_ctx->redis_setup.key, string); - if (SC_ATOMIC_CAS(&file_ctx->redis_setup.batch_count, file_ctx->redis_setup.batch_size, 0)) { + if (file_ctx->redis_setup.batch_count == file_ctx->redis_setup.batch_size) { redisReply *reply; int i; + file_ctx->redis_setup.batch_count = 0; for (i = 0; i <= file_ctx->redis_setup.batch_size; i++) { if (redisGetReply(file_ctx->redis, (void **)&reply) == REDIS_OK) { freeReplyObject(reply); @@ -570,7 +571,7 @@ static int LogFileWriteRedis(LogFileCtx *file_ctx, char *string, size_t string_ } } } else { - SC_ATOMIC_ADD(file_ctx->redis_setup.batch_count, 1); + file_ctx->redis_setup.batch_count++; } } else { redisReply *reply = redisCommand(file_ctx->redis, "%s %s %s", diff --git a/src/util-logopenfile.h b/src/util-logopenfile.h index d1efee9f67..167286d4bf 100644 --- a/src/util-logopenfile.h +++ b/src/util-logopenfile.h @@ -55,7 +55,7 @@ typedef struct RedisSetup_ { char *key; char *sensor_name; int batch_size; - SC_ATOMIC_DECLARE(int, batch_count); + int batch_count; char *server; int port; time_t tried;