hClose: don't raise an exception when passed a handle that's already closed,
i.e.,
h <- openFile "a" ReadMode >> hClose h >> hClose h
will now succeed (provided 'a' exists and is readable, of course.)
Repeated hClose's are just redundant.
ioError theError
ClosedHandle -> do
writeHandle handle handle_
- ioe_closedHandle "hClose" handle
+ return ()
_ -> do
rc <- CCALL(closeFile) (haFO__ handle_) (1::Int){-flush if you can-} -- ConcHask: SAFE, won't block
{- We explicitly close a file object so that we can be told