forked from Lainports/opnsense-ports
71 lines
1.8 KiB
Text
71 lines
1.8 KiB
Text
From 1a09a645c82e07fee8d42642a83652c6c85473ff Mon Sep 17 00:00:00 2001
|
|
From: Alan Hicks <ahicks@p-o.co.uk>
|
|
Date: Mon, 31 Oct 2016 18:27:45 +0000
|
|
Subject: [PATCH 26/33] Rebalance commit/rollback
|
|
|
|
---
|
|
src/dm_mailboxstate.c | 9 ++++++---
|
|
src/imapcommands.c | 1 +
|
|
2 files changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
diff --git src/dm_mailboxstate.c src/dm_mailboxstate.c
|
|
index 723689a..c04b6d7 100644
|
|
--- src/dm_mailboxstate.c
|
|
+++ src/dm_mailboxstate.c
|
|
@@ -212,11 +212,12 @@ T MailboxState_new(Mempool_T pool, uint64_t id)
|
|
db_begin_transaction(c); // we need read-committed isolation
|
|
state_load_metadata(M, c);
|
|
state_load_messages(M, c);
|
|
+ db_commit_transaction(c);
|
|
CATCH(SQLException)
|
|
LOG_SQLERROR;
|
|
+ db_rollback_transaction(c);
|
|
t = DM_EQUERY;
|
|
FINALLY
|
|
- db_commit_transaction(c);
|
|
db_con_close(c);
|
|
END_TRY;
|
|
|
|
@@ -888,11 +889,12 @@ int MailboxState_info(T M)
|
|
TRY
|
|
db_begin_transaction(c);
|
|
db_getmailbox_info(M, c);
|
|
+ db_commit_transaction(c);
|
|
CATCH(SQLException)
|
|
LOG_SQLERROR;
|
|
+ db_rollback_transaction(c);
|
|
t = DM_EQUERY;
|
|
FINALLY
|
|
- db_commit_transaction(c);
|
|
db_con_close(c);
|
|
END_TRY;
|
|
|
|
@@ -928,11 +930,12 @@ int MailboxState_count(T M)
|
|
TRY
|
|
db_begin_transaction(c);
|
|
db_getmailbox_count(M, c);
|
|
+ db_commit_transaction(c);
|
|
CATCH(SQLException)
|
|
LOG_SQLERROR;
|
|
+ db_rollback_transaction(c);
|
|
t = DM_EQUERY;
|
|
FINALLY
|
|
- db_commit_transaction(c);
|
|
db_con_close(c);
|
|
END_TRY;
|
|
|
|
diff --git src/imapcommands.c src/imapcommands.c
|
|
index bdedb4a..43760fc 100644
|
|
--- src/imapcommands.c
|
|
+++ src/imapcommands.c
|
|
@@ -946,6 +946,7 @@ void _ic_delete_enter(dm_thread_data *D)
|
|
db_commit_transaction(c);
|
|
CATCH(SQLException)
|
|
LOG_SQLERROR;
|
|
+ db_rollback_transaction(c);
|
|
t = DM_EQUERY;
|
|
FINALLY
|
|
db_con_close(c);
|
|
--
|
|
2.10.1 (Apple Git-78)
|
|
|