docker-offlineimap/offlineimap
Nicolas Sebrecht 038a433f69 backport: sqlite: properly serialize operations on the databases
1. There is one database per folder and sqlite requires to serialize the
writings. Instead of locking at LocalStatusSQLiteFolder object level, introduce
a new DatabaseFileLock object which is shared across threads. This fixes the
concurrent writes issues that some users might experience by duplications or
flags restored to the previous state.

2. Close the database only when we are sure no other threads will use the
connection on a *per-file* basis. Previous fix 677afb8d8f is wrong
because the same lock is shared for all the databases.

Github-fix: https://github.com/OfflineIMAP/offlineimap/issues/350
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2016-07-26 02:00:17 +02:00
..
folder backport: sqlite: properly serialize operations on the databases 2016-07-26 02:00:17 +02:00
repository backport: sqlite: properly serialize operations on the databases 2016-07-26 02:00:17 +02:00
ui Curses, UIBase: remove references to __bigversion__ 2016-03-05 06:47:24 +01:00
utils Make OS-default CA certificate file to be requested explicitely 2015-01-18 22:05:49 +03:00
__init__.py v6.7.0.2 2016-07-22 16:34:04 +02:00
accounts.py backport: sqlite: properly serialize operations on the databases 2016-07-26 02:00:17 +02:00
CustomConfig.py Properly re-raise exception to save original tracebacks 2015-01-12 17:51:21 +03:00
emailutil.py more style consistency 2015-01-08 23:36:19 +01:00
error.py more consistent style 2015-01-07 21:31:43 +01:00
globals.py Create global instance of command-line options 2013-02-11 23:34:18 +04:00
imaplib2.py bump imaplib2 from 2.52 to 2.53 2015-12-28 01:18:16 +01:00
imaplibutil.py change hard coding of AF_UNSPEC to user-defined address-families per repository 2016-02-23 06:57:21 +01:00
imapserver.py change hard coding of AF_UNSPEC to user-defined address-families per repository 2016-02-23 06:57:21 +01:00
imaputil.py IMAP folder: expose the message keywords 2015-11-22 19:51:02 +01:00
init.py Identify and fix messages with FMD5 inconsistencies 2016-03-06 21:01:51 +01:00
localeval.py localeval: avoid redefining 'file' keyword 2015-01-14 17:18:48 +01:00
mbnames.py mbnames: add option to write the file once per account 2015-03-22 21:15:46 +01:00
syncmaster.py Exit "infinite" monitorloop when SyncRunner thread exits 2011-11-02 11:55:05 +01:00
threadutil.py more style consistency 2015-02-10 17:25:00 +01:00