From 3f5dd70580e26bf2fa6c6d2ce4faf32008243cf6 Mon Sep 17 00:00:00 2001 From: Unrud Date: Thu, 11 Aug 2016 03:34:08 +0200 Subject: [PATCH] Add option to close lock file Close the lock file, when no more clients are waiting. This option is not very useful in general, but on Windows files that are opened cannot be deleted. This causes tests to fail, because the deletion of the temporary filesystem folder fails. --- radicale/config.py | 3 ++- radicale/storage.py | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/radicale/config.py b/radicale/config.py index 1e02656d..5076ffa3 100644 --- a/radicale/config.py +++ b/radicale/config.py @@ -59,7 +59,8 @@ INITIAL_CONFIG = { "filesystem_folder": os.path.expanduser( "~/.config/radicale/collections"), "fsync": "True", - "hook": ""}, + "hook": "", + "close_lock_file": "False"}, "logging": { "config": "/etc/radicale/logging", "debug": "False", diff --git a/radicale/storage.py b/radicale/storage.py index 594dc060..9fabfb36 100644 --- a/radicale/storage.py +++ b/radicale/storage.py @@ -802,3 +802,7 @@ class Collection(BaseCollection): cls._lock_file_locked = False if cls._waiters: cls._waiters[0].notify() + if (cls.configuration.getboolean("storage", "close_lock_file") + and cls._readers == 0 and not cls._waiters): + cls._lock_file.close() + cls._lock_file = None \ No newline at end of file