X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FIO.hs;h=5304d8389892b0df01f84d02b59fa81cd2e0476f;hb=4748a7927948a6538c6e96a3d06bea75545b9301;hp=cbcc4531f3eb0fb53fbf665e3fbb264a456ab0b3;hpb=0001f92b790079cec9df03c2229d6f39268f60af;p=ghc-base.git diff --git a/System/IO.hs b/System/IO.hs index cbcc453..5304d83 100644 --- a/System/IO.hs +++ b/System/IO.hs @@ -28,7 +28,7 @@ module System.IO ( -- | GHC note: a 'Handle' will be automatically closed when the garbage -- collector detects that it has become unreferenced by the program. -- However, relying on this behaviour is not generally recommended: - -- the garbage collector is unpredictable. If possible, use explicit + -- the garbage collector is unpredictable. If possible, use -- an explicit 'hClose' to close 'Handle's when they are no longer -- required. GHC does not currently attempt to free up file -- descriptors when they have run out, it is your responsibility to @@ -449,7 +449,9 @@ hPrint hdl = hPutStrLn hdl . show -- | @'withFile' name mode act@ opens a file using 'openFile' and passes -- the resulting handle to the computation @act@. The handle will be -- closed on exit from 'withFile', whether by normal termination or by --- raising an exception. +-- raising an exception. If closing the handle raises an exception, then +-- this exception will be raised by 'withFile' rather than any exception +-- raised by 'act'. withFile :: FilePath -> IOMode -> (Handle -> IO r) -> IO r withFile name mode = bracket (openFile name mode) hClose