X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FStorage%2FImpl.hs;h=bedc9eaa2808d3142e5d4abf91cd00d724369401;hb=8631d8de8373ec8226d19019ae7cf3a1bf2e44e5;hp=e699163b6fcecdc5ee639f88c30868efa3b2a42c;hpb=43113f26d3e61c96d896724c5509abe67b6a99e7;p=Rakka.git diff --git a/Rakka/Storage/Impl.hs b/Rakka/Storage/Impl.hs index e699163..bedc9ea 100644 --- a/Rakka/Storage/Impl.hs +++ b/Rakka/Storage/Impl.hs @@ -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"