error: file locked

This commit is contained in:
Dmitry Zuikov 2023-01-26 09:10:36 +03:00
parent 5c4fbca977
commit 81eae775bc
1 changed files with 8 additions and 2 deletions

View File

@ -18,6 +18,7 @@ import HBS2.Storage
import HBS2.Defaults
import HBS2.Clock
import Data.List qualified as L
import Data.Functor
import Data.Function
import Control.Exception
@ -43,6 +44,7 @@ import Control.Concurrent.Async
import Data.Cache (Cache)
import Data.Cache qualified as Cache
import Control.Concurrent.STM
import Control.Concurrent.STM.TVar as TV
import Control.Concurrent.STM.TBQueue qualified as Q
import Control.Concurrent.STM.TSem qualified as Sem
import Control.Concurrent.STM.TSem (TSem)
@ -96,8 +98,12 @@ runChunkWriter2 :: forall h m . ( Eq (Hash h)
runChunkWriter2 w = do
liftIO $ createDirectoryIfMissing True ( dir w )
fix \next -> pause ( 1 :: Timeout 'Seconds) >> next
let tv = perBlock w
fix \next -> do
keys <- liftIO $ readTVarIO tv <&> (L.take 10 . HashMap.keys)
for_ keys (flush w)
pause ( 0.25 :: Timeout 'Seconds)
next
stopChunkWriter :: MonadIO m => ChunkWriter h m -> m ()
stopChunkWriter w = do