diff --git a/GHC/Handle.hs b/GHC/Handle.hs index 261c81c53a69ea801f703c5d19401f64a32c0276..263b86d1275202469211918a05500ccc8b9aa92c 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