From: Simon Marlow Date: Thu, 19 Jul 2007 16:14:19 +0000 (+0000) Subject: in hClose, free the handle buffer by replacing it with an empty one X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=f90f86bf14d4c0cf1858ed58f5cdfa044b6b8ffb;p=ghc-base.git in hClose, free the handle buffer by replacing it with an empty one This helps reduce the memory requirements for a closed but unfinalised Handle. --- diff --git a/GHC/Handle.hs b/GHC/Handle.hs index 261c81c..263b86d 100644 --- a/GHC/Handle.hs +++ b/GHC/Handle.hs @@ -1158,6 +1158,7 @@ hClose_handle_ handle_ = do -- free the spare buffers writeIORef (haBuffers handle_) BufferListNil + writeIORef (haBuffer handle_) noBuffer #ifndef mingw32_HOST_OS -- unlock it @@ -1170,6 +1171,9 @@ hClose_handle_ handle_ = do haType = ClosedHandle }) +{-# NOINLINE noBuffer #-} +noBuffer = unsafePerformIO $ allocateBuffer 1 ReadBuffer + ----------------------------------------------------------------------------- -- Detecting and changing the size of a file