diff options
author | David Bremner <david@tethera.net> | 2016-11-27 11:24:58 -0400 |
---|---|---|
committer | David Bremner <david@tethera.net> | 2016-12-07 07:00:40 -0400 |
commit | 9259b97fa2659ae6b6dbcd49b04db087e64036ad (patch) | |
tree | f6b392607f221b6926e449b9992993a669a8740f /notmuch-insert.c | |
parent | 27e293f653b2688fc4452a92c99e76c7e97669d1 (diff) |
cli/insert: delay database open until after writing mail file
The idea is to get the mail written to disk, even if we can't open the
database (e.g. because some other process has a write lock, and notmuch
is compiled for non-blocking opens).
Diffstat (limited to 'notmuch-insert.c')
-rw-r--r-- | notmuch-insert.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/notmuch-insert.c b/notmuch-insert.c index 131f09e2..862da889 100644 --- a/notmuch-insert.c +++ b/notmuch-insert.c @@ -532,19 +532,19 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[]) action.sa_flags = 0; sigaction (SIGINT, &action, NULL); - if (notmuch_database_open (notmuch_config_get_database_path (config), - NOTMUCH_DATABASE_MODE_READ_WRITE, ¬much)) - return EXIT_FAILURE; - - notmuch_exit_if_unmatched_db_uuid (notmuch); - /* Write the message to the Maildir new directory. */ newpath = maildir_write_new (config, STDIN_FILENO, maildir); if (! newpath) { - notmuch_database_destroy (notmuch); return EXIT_FAILURE; } + if (notmuch_database_open (notmuch_config_get_database_path (config), + NOTMUCH_DATABASE_MODE_READ_WRITE, ¬much)) + return EXIT_FAILURE; + + notmuch_exit_if_unmatched_db_uuid (notmuch); + + /* Index the message. */ status = add_file (notmuch, newpath, tag_ops, synchronize_flags, keep); |