diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-11-16 21:21:58 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-11-16 21:21:58 -0400 |
commit | b30f9c5660be384e0fc75a9378101439f15954a7 (patch) | |
tree | dafb6fb570c4d75b7ac514a72b81c24e0fd49fe8 | |
parent | 89e8441c62b985a6bcf37024fc051e99fbce8e37 (diff) |
avoid spawning file size polling thread when not in -J mode
-rw-r--r-- | Annex/Content.hs | 6 | ||||
-rw-r--r-- | Messages/Progress.hs | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/Annex/Content.hs b/Annex/Content.hs index 90486f912..612a96a6b 100644 --- a/Annex/Content.hs +++ b/Annex/Content.hs @@ -660,10 +660,8 @@ saveState nocommit = doSideAction $ do {- Downloads content from any of a list of urls. -} downloadUrl :: Key -> MeterUpdate -> [Url.URLString] -> FilePath -> Annex Bool -downloadUrl k p urls file = - concurrentMetered (Just p) k $ \p' -> - watchFileSize file p' $ - go =<< annexWebDownloadCommand <$> Annex.getGitConfig +downloadUrl k p urls file = concurrentMeteredFile file (Just p) k $ + go =<< annexWebDownloadCommand <$> Annex.getGitConfig where go Nothing = do a <- ifM commandProgressDisabled diff --git a/Messages/Progress.hs b/Messages/Progress.hs index c14e7e6b1..25d803b1b 100644 --- a/Messages/Progress.hs +++ b/Messages/Progress.hs @@ -70,7 +70,15 @@ concurrentMetered :: Maybe MeterUpdate -> Key -> (MeterUpdate -> Annex a) -> Ann concurrentMetered combinemeterupdate key a = withOutputType go where go (ConcurrentOutput _) = metered combinemeterupdate key a - go _ = a (fromMaybe (const noop) combinemeterupdate) + go _ = a (fromMaybe nullMeterUpdate combinemeterupdate) + +{- Poll file size to display meter, but only for concurrent output. -} +concurrentMeteredFile :: FilePath -> Maybe MeterUpdate -> Key -> Annex a -> Annex a +concurrentMeteredFile file combinemeterupdate key a = withOutputType go + where + go (ConcurrentOutput _) = metered combinemeterupdate key $ \p -> + watchFileSize file p a + go _ = a {- Progress dots. -} showProgressDots :: Annex () |