summaryrefslogtreecommitdiff
path: root/Database/Fsck.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-02-16 16:04:23 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-02-16 16:07:36 -0400
commite25ea03e118a76ef59169ec6fb5b195c80ff00f7 (patch)
tree8b284ba4c4e4b8c907d3508725a418b8cdcda915 /Database/Fsck.hs
parent28e6e6f71d6c7c64225cbfa65dcdf5db8c8e22e8 (diff)
commit more transactions when fscking
This makes interrupt and resume work, robustly. But, incremental fsck is slowed down by all those transactions..
Diffstat (limited to 'Database/Fsck.hs')
-rw-r--r--Database/Fsck.hs9
1 files changed, 5 insertions, 4 deletions
diff --git a/Database/Fsck.hs b/Database/Fsck.hs
index f03a4c009..2b622e844 100644
--- a/Database/Fsck.hs
+++ b/Database/Fsck.hs
@@ -11,6 +11,7 @@
module Database.Fsck (
newPass,
openDb,
+ H.commitDb,
H.closeDb,
H.DbHandle,
addDb,
@@ -60,11 +61,11 @@ openDb = do
liftIO $ renameFile newdb db
liftIO $ H.openDb db
-addDb :: H.DbHandle -> Key -> Annex ()
-addDb h = void . liftIO . H.runDb h . insert . Fscked . toSKey
+addDb :: H.DbHandle -> Key -> IO ()
+addDb h = void . H.runDb h . insert . Fscked . toSKey
-inDb :: H.DbHandle -> Key -> Annex Bool
-inDb h k = liftIO $ H.runDb h $ do
+inDb :: H.DbHandle -> Key -> IO Bool
+inDb h k = H.runDb h $ do
r <- select $ from $ \r -> do
where_ (r ^. FsckedKey ==. val (toSKey k))
return (r ^. FsckedKey)