comment
authorJoey Hess <joeyh@joeyh.name>
Wed, 16 Dec 2015 17:24:45 +0000 (13:24 -0400)
committerJoey Hess <joeyh@joeyh.name>
Wed, 16 Dec 2015 17:24:45 +0000 (13:24 -0400)
Database/Keys.hs

index 62c7c25eb45a67ef3729f382f8a48c205b82525a..d4b5b33574c7369ce94a5093443b2039d408f182 100644 (file)
@@ -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