From: Aki Tuomi Date: Tue, 2 Jun 2026 09:54:41 +0000 (+0000) Subject: [PATCH 3/6] lib-sql: Add sql_commit_schedule_delayed() helper X-Git-Tag: archive/raspbian/1%2.4.1+dfsg1-6+rpi1+deb13u7^2~81 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b464b21fc5abc17e62736d5c9ac3a83c8f5f6d56;p=dovecot.git [PATCH 3/6] lib-sql: Add sql_commit_schedule_delayed() helper Gbp-Pq: Name 0003-lib-sql-Add-sql_commit_schedule_delayed-helper.patch --- diff --git a/src/lib-sql/sql-api.c b/src/lib-sql/sql-api.c index 87c7ff3..c7d2328 100644 --- a/src/lib-sql/sql-api.c +++ b/src/lib-sql/sql-api.c @@ -885,6 +885,19 @@ static void sql_commit_delayed_callback(struct sql_commit_result_delayed *cb) i_free(cb); } +static void +sql_commit_schedule_delayed(struct sql_db *db, const char *error, + sql_commit_callback_t *callback, void *context) +{ + struct sql_commit_result_delayed *cb = i_new(struct sql_commit_result_delayed, 1); + cb->db = db; + cb->error = i_strdup(error); + cb->callback = callback; + cb->context = context; + cb->to = timeout_add_short(0, sql_commit_delayed_callback, cb); + DLLIST_PREPEND(&db->commit_delayed_list, cb); +} + #undef sql_transaction_commit void sql_transaction_commit(struct sql_transaction_context **_ctx, sql_commit_callback_t *callback, void *context) @@ -898,15 +911,9 @@ void sql_transaction_commit(struct sql_transaction_context **_ctx, return; } - struct sql_commit_result_delayed *cb = i_new(struct sql_commit_result_delayed, 1); const char *error = NULL; ctx->db->v.transaction_commit_s(ctx, &error); - cb->db = db; - cb->error = i_strdup(error); - cb->callback = callback; - cb->context = context; - cb->to = timeout_add_short(0, sql_commit_delayed_callback, cb); - DLLIST_PREPEND(&db->commit_delayed_list, cb); + sql_commit_schedule_delayed(db, error, callback, context); } int sql_transaction_commit_s(struct sql_transaction_context **_ctx,