]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: Add "wait" vfunc
authorSiavash Tavakoli <siavash.tavakoli@open-xchange.com>
Mon, 27 Sep 2021 10:46:07 +0000 (11:46 +0100)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Wed, 29 Sep 2021 18:02:23 +0000 (18:02 +0000)
To be used in backends that support async operations. On deinit dicts
should wait for results and then exit.

src/lib-sql/sql-api-private.h
src/lib-sql/sql-api.c
src/lib-sql/sql-api.h

index 1148bf64629b442a13683509e32b42b84b55be35..192afb6f900c11b9f97801ac3222984b1b6efd30 100644 (file)
@@ -70,6 +70,7 @@ struct sql_db_vfuncs {
                         const char **error);
        void (*deinit)(struct sql_db *db);
        void (*unref)(struct sql_db *db);
+       void (*wait) (struct sql_db *db);
 
        enum sql_db_flags (*get_flags)(struct sql_db *db);
 
index abb264024d9bdcf2055efa8ce5c8575324e33142..919513b3522ec121f269a7eedcf024827d064795 100644 (file)
@@ -814,6 +814,13 @@ struct event_passthrough *sql_transaction_finished_event(struct sql_transaction_
                set_name(SQL_TRANSACTION_FINISHED);
 }
 
+void sql_wait(struct sql_db *db)
+{
+       if (db->v.wait != NULL)
+               db->v.wait(db);
+}
+
+
 struct sql_result sql_not_connected_result = {
        .v = {
                sql_result_not_connected_free,
index 9a74fc64524aa91c03cefc4934b91c31f287986a..7936b98628bde04d70b5cff7edf4e03ed5b404da 100644 (file)
@@ -243,4 +243,7 @@ void sql_update_stmt_get_rows(struct sql_transaction_context *ctx,
                              struct sql_statement **stmt,
                              unsigned int *affected_rows);
 
+/* Wait for SQL query results. */
+void sql_wait(struct sql_db *db);
+
 #endif