diff --git a/src/engine/db/db-connection.vala b/src/engine/db/db-connection.vala index b72521bc..831b6e83 100644 --- a/src/engine/db/db-connection.vala +++ b/src/engine/db/db-connection.vala @@ -18,6 +18,12 @@ public class Geary.Db.Connection : Geary.Db.Context { public const int DEFAULT_BUSY_TIMEOUT_MSEC = 0; + /** + * This value gives a generous amount of time for SQLite to finish a big write operation and + * relinquish the lock to other waiting transactions. + */ + public const int RECOMMENDED_BUSY_TIMEOUT_MSEC = 30 * 1000; + private const string PRAGMA_FOREIGN_KEYS = "foreign_keys"; private const string PRAGMA_RECURSIVE_TRIGGERS = "recursive_triggers"; private const string PRAGMA_USER_VERSION = "user_version"; diff --git a/src/engine/imap-db/imap-db-database.vala b/src/engine/imap-db/imap-db-database.vala index be080427..07f80753 100644 --- a/src/engine/imap-db/imap-db-database.vala +++ b/src/engine/imap-db/imap-db-database.vala @@ -6,7 +6,7 @@ private class Geary.ImapDB.Database : Geary.Db.VersionedDatabase { private const string DB_FILENAME = "geary.db"; - private const int BUSY_TIMEOUT_MSEC = 1000; + private const int BUSY_TIMEOUT_MSEC = Db.Connection.RECOMMENDED_BUSY_TIMEOUT_MSEC; public Database(File db_dir, File schema_dir) { base (db_dir.get_child(DB_FILENAME), schema_dir);