From 179aeeaacc2748ef869864415ad3f172129cd369 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Fri, 5 Oct 2012 17:03:58 -0400 Subject: [PATCH] Remote/Git: Use SampleVar from SafeSemaphore instead of base SampleVars from base are unsafe --- Remote/Git.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Remote/Git.hs b/Remote/Git.hs index df97db7a6d..6d95d5de0f 100644 --- a/Remote/Git.hs +++ b/Remote/Git.hs @@ -38,6 +38,7 @@ import Types.Key import qualified Fields import Control.Concurrent +import Control.Concurrent.MSampleVar import System.Process (std_in, std_err) remote :: RemoteType @@ -273,9 +274,9 @@ copyFromRemote r key file dest : maybe [] (\f -> [(Fields.associatedFile, f)]) file Just (cmd, params) <- git_annex_shell r "transferinfo" [Param $ key2file key] fields - v <- liftIO $ newEmptySampleVar + v <- liftIO $ newEmptySV tid <- liftIO $ forkIO $ void $ tryIO $ do - bytes <- readSampleVar v + bytes <- readSV v p <- createProcess $ (proc cmd (toCommand params)) { std_in = CreatePipe @@ -288,8 +289,8 @@ copyFromRemote r key file dest hFlush h send bytes forever $ - send =<< readSampleVar v - let feeder = writeSampleVar v + send =<< readSV v + let feeder = writeSV v bracketIO noop (const $ tryIO $ killThread tid) (a feeder) copyFromRemoteCheap :: Git.Repo -> Key -> FilePath -> Annex Bool