From: Timo Sirainen Date: Sat, 26 Aug 2017 20:27:21 +0000 (+0300) Subject: dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc X-Git-Tag: 2.3.0.rc1~1059 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fc998bd6e0347524a0c4191e5d3b908bfa6b3a05;p=thirdparty%2Fdovecot%2Fcore.git dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc --- diff --git a/src/lib-dict/dict-sql.c b/src/lib-dict/dict-sql.c index a47789aa75..c14425580f 100644 --- a/src/lib-dict/dict-sql.c +++ b/src/lib-dict/dict-sql.c @@ -1324,6 +1324,9 @@ static void sql_dict_set(struct dict_transaction_context *_ctx, if (ctx->error != NULL) return; + if (ctx->prev_inc_map != NULL) + sql_dict_prev_inc_flush(ctx); + map = sql_dict_find_map(dict, key, &values); if (map == NULL) { ctx->error = i_strdup_printf( @@ -1387,6 +1390,9 @@ static void sql_dict_atomic_inc(struct dict_transaction_context *_ctx, if (ctx->error != NULL) return; + if (ctx->prev_set_map != NULL) + sql_dict_prev_set_flush(ctx); + map = sql_dict_find_map(dict, key, &values); if (map == NULL) { ctx->error = i_strdup_printf(