From: Joey Hess Date: Tue, 27 Dec 2016 20:26:26 +0000 (-0400) Subject: avoid leaving MVar empty X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~1^2~278^2~26^2~8 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=41d956e0a0c785ece59b9047610419d5a4f99e9d;p=git-annex.git avoid leaving MVar empty Something might want to observe the code multiple times. --- diff --git a/Utility/MagicWormhole.hs b/Utility/MagicWormhole.hs index e217dcdca6..3743f352ce 100644 --- a/Utility/MagicWormhole.hs +++ b/Utility/MagicWormhole.hs @@ -78,7 +78,7 @@ mkCodeProducer :: IO CodeProducer mkCodeProducer = CodeProducer <$> newEmptyMVar waitCode :: CodeObserver -> IO Code -waitCode (CodeObserver o) = takeMVar o +waitCode (CodeObserver o) = readMVar o sendCode :: CodeProducer -> Code -> IO () sendCode (CodeProducer p) = putMVar p @@ -119,7 +119,7 @@ sendFile f (CodeObserver observer) ps = do -- read from the CodeProducer, and fed to wormhole on stdin. receiveFile :: FilePath -> CodeProducer -> WormHoleParams -> IO Bool receiveFile f (CodeProducer producer) ps = runWormHoleProcess p $ \hin _hout -> do - Code c <- takeMVar producer + Code c <- readMVar producer hPutStrLn hin c hFlush hin return True