aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch-new.c
diff options
context:
space:
mode:
Diffstat (limited to 'notmuch-new.c')
-rw-r--r--notmuch-new.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/notmuch-new.c b/notmuch-new.c
index 598a2083..e79593cd 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -450,6 +450,12 @@ add_files_recursive (notmuch_database_t *notmuch,
fflush (stdout);
}
+ status = notmuch_database_begin_atomic (notmuch);
+ if (status) {
+ ret = status;
+ goto DONE;
+ }
+
status = notmuch_database_add_message (notmuch, next, &message);
switch (status) {
/* success */
@@ -490,6 +496,12 @@ add_files_recursive (notmuch_database_t *notmuch,
goto DONE;
}
+ status = notmuch_database_end_atomic (notmuch);
+ if (status) {
+ ret = status;
+ goto DONE;
+ }
+
if (message) {
notmuch_message_destroy (message);
message = NULL;
@@ -728,6 +740,9 @@ remove_filename (notmuch_database_t *notmuch,
{
notmuch_status_t status;
notmuch_message_t *message;
+ status = notmuch_database_begin_atomic (notmuch);
+ if (status)
+ return status;
message = notmuch_database_find_message_by_filename (notmuch, path);
status = notmuch_database_remove_message (notmuch, path);
if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) {
@@ -737,6 +752,7 @@ remove_filename (notmuch_database_t *notmuch,
} else
add_files_state->removed_messages++;
notmuch_message_destroy (message);
+ notmuch_database_end_atomic (notmuch);
return status;
}