From f0c4756b11d9d4c4f14c8d62d0ab88848750168d Mon Sep 17 00:00:00 2001 From: Dmitry Zuikov Date: Wed, 25 Jan 2023 13:14:31 +0300 Subject: [PATCH] wip --- hbs2-core/lib/HBS2/Actors/ChunkWriter.hs | 10 +++++----- hbs2-tests/test/TestChunkWriter.hs | 7 ++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/hbs2-core/lib/HBS2/Actors/ChunkWriter.hs b/hbs2-core/lib/HBS2/Actors/ChunkWriter.hs index 150dd01a..fdde51f6 100644 --- a/hbs2-core/lib/HBS2/Actors/ChunkWriter.hs +++ b/hbs2-core/lib/HBS2/Actors/ChunkWriter.hs @@ -67,7 +67,7 @@ data ChunkWriter h m = forall a . ( MonadIO m , pipeline :: Pipeline m () , dir :: FilePath , storage :: a - , perBlock :: Cache FilePath (TQueue (Handle -> IO ())) + , perBlock :: Cache FilePath (TQueue (IO ())) , perBlockSem :: Cache FilePath TSem } @@ -276,8 +276,8 @@ writeChunk2 w salt h o bs = do liftIO $ do q <- Cache.fetchWithCache cache fn $ const Q0.newTQueueIO - atomically $ Q0.writeTQueue q $ \fh -> do - -- withBinaryFile fn ReadWriteMode $ \fh -> do + atomically $ Q0.writeTQueue q $ do + withBinaryFile fn ReadWriteMode $ \fh -> do hSeek fh AbsoluteSeek (fromIntegral o) B.hPutStr fh bs -- hFlush fh @@ -334,8 +334,8 @@ flush w fn = do liftIO $ do -- withBinaryFile fn ReadWriteMode $ \fh -> do - withBinaryFile fn ReadWriteMode $ \fh -> do - for_ flushed $ \f -> f fh + -- withBinaryFile fn ReadWriteMode $ \fh -> do + for_ flushed id atomically $ Sem.signalTSem s diff --git a/hbs2-tests/test/TestChunkWriter.hs b/hbs2-tests/test/TestChunkWriter.hs index d1199547..0296f56a 100644 --- a/hbs2-tests/test/TestChunkWriter.hs +++ b/hbs2-tests/test/TestChunkWriter.hs @@ -50,10 +50,11 @@ main = do w2 <- replicateM 1 $ async $ runChunkWriter cw - -- psz' <- shuffleM psz - psz' <- pure psz + psz' <- shuffleM psz + -- psz' <- pure psz - forConcurrently_ psz' $ \(o,s) -> do + -- forConcurrently_ psz' $ \(o,s) -> do + forM_ psz' $ \(o,s) -> do let t = B8.take s $ B8.drop o bytes writeChunk cw 1 hash (fromIntegral o) t