summaryrefslogtreecommitdiff
path: root/Database/Keys.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Database/Keys.hs')
-rw-r--r--Database/Keys.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/Database/Keys.hs b/Database/Keys.hs
index 62c7c25eb..d4b5b3357 100644
--- a/Database/Keys.hs
+++ b/Database/Keys.hs
@@ -54,7 +54,14 @@ Content
KeyCacheIndex key cache
|]
-{- Opens the database, creating it if it doesn't exist yet. -}
+{- Opens the database, creating it if it doesn't exist yet.
+ -
+ - Multiple readers and writers can have the database open at the same
+ - time. Database.Handle deals with the concurrency issues.
+ - The lock is held while opening the database, so that when
+ - the database doesn't exist yet, one caller wins the lock and
+ - can create it undisturbed.
+ -}
openDb :: Annex DbHandle
openDb = withExclusiveLock gitAnnexKeysDbLock $ do
dbdir <- fromRepo gitAnnexKeysDb