From 2ad06ded7e9f11e681594950c12535ea08d42eee Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 8 Dec 2016 16:28:07 -0400 Subject: [PATCH] force sofar calculation This could avoid a memory leak. It would only happen when the meter didn't look at sofar. --- Utility/Metered.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Utility/Metered.hs b/Utility/Metered.hs index b80d3ae3f9..e21e18cf14 100644 --- a/Utility/Metered.hs +++ b/Utility/Metered.hs @@ -5,7 +5,7 @@ - License: BSD-2-clause -} -{-# LANGUAGE TypeSynonymInstances #-} +{-# LANGUAGE TypeSynonymInstances, BangPatterns #-} module Utility.Metered where @@ -93,7 +93,7 @@ meteredWrite' meterupdate h = go zeroBytesProcessed . L.toChunks go sofar [] = return sofar go sofar (c:cs) = do S.hPut h c - let sofar' = addBytesProcessed sofar $ S.length c + let !sofar' = addBytesProcessed sofar $ S.length c meterupdate sofar' go sofar' cs @@ -138,7 +138,7 @@ hGetMetered h wantsize meterupdate = lazyRead zeroBytesProcessed hClose h return $ L.empty else do - let sofar' = addBytesProcessed sofar (S.length c) + let !sofar' = addBytesProcessed sofar (S.length c) meterupdate sofar' if keepgoing (fromBytesProcessed sofar') then do