]> gitweb @ CieloNegro.org - Rakka.git/commitdiff
Code cleanup
authorPHO <pho@cielonegro.org>
Wed, 17 Feb 2010 06:47:05 +0000 (15:47 +0900)
committerPHO <pho@cielonegro.org>
Wed, 17 Feb 2010 06:47:05 +0000 (15:47 +0900)
Main.hs
Rakka/Storage/Impl.hs

diff --git a/Main.hs b/Main.hs
index 8ea363baec82c90e24be4f3485e9cf8d2a269da4..78de22fad823e90529f0b5cd0948b33ebbea0dc1 100644 (file)
--- a/Main.hs
+++ b/Main.hs
@@ -267,7 +267,7 @@ withSystemLock lockfile = bracket lock' unlock' . const
       unlock' = closeFd
 
 withPidFile :: FilePath -> IO a -> IO a
-withPidFile lockfile = bracket mkPid' (const delPid') . const
+withPidFile lockfile = bracket_ mkPid' delPid'
     where
       mkPid' :: IO ()
       mkPid' = withFile lockfile WriteMode $ \ h ->
index e1bad11015a987b32d95d079594ae731550f85fb..bedc9eaa2808d3142e5d4abf91cd00d724369401 100644 (file)
@@ -12,6 +12,7 @@ module Rakka.Storage.Impl
 
 import           Control.Concurrent
 import           Control.Concurrent.STM
+import           Control.Exception
 import           Control.Monad
 import           Data.Maybe
 import           Data.Set (Set)
@@ -107,7 +108,7 @@ startIndexManager :: FilePath -> Repository -> (Page -> IO Document) -> IO (TCha
 startIndexManager lsdir repos mkDraft
     = do chan  <- newTChanIO
          index <- openIndex indexDir revFile
-         _     <- forkIO (loop chan index)
+         _     <- forkIO (loop chan index `finally` closeDatabase index)
          return chan
     where
       indexDir = lsdir </> "index"