From f90f86bf14d4c0cf1858ed58f5cdfa044b6b8ffb Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Thu, 19 Jul 2007 16:14:19 +0000 Subject: [PATCH] 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. --- GHC/Handle.hs | 4 ++++ 1 file changed, 4 insertions(+) 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 -- 1.7.10.4