diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-02-16 16:04:23 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-02-16 16:07:36 -0400 |
commit | e25ea03e118a76ef59169ec6fb5b195c80ff00f7 (patch) | |
tree | 8b284ba4c4e4b8c907d3508725a418b8cdcda915 /Database/Fsck.hs | |
parent | 28e6e6f71d6c7c64225cbfa65dcdf5db8c8e22e8 (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.hs | 9 |
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) |