From: Simon Marlow Date: Wed, 1 Dec 2010 10:51:14 +0000 (+0000) Subject: check for ClosedHandle in read/write operations on DuplexHandles (#4808) X-Git-Url: http://git.megacz.com/?p=ghc-base.git;a=commitdiff_plain;h=267f4516994e20eec23203214079102edc3a3262 check for ClosedHandle in read/write operations on DuplexHandles (#4808) --- diff --git a/GHC/IO/Handle/Internals.hs b/GHC/IO/Handle/Internals.hs index 1e48e8b..2aad185 100644 --- a/GHC/IO/Handle/Internals.hs +++ b/GHC/IO/Handle/Internals.hs @@ -220,7 +220,9 @@ wantWritableHandle :: String -> Handle -> (Handle__ -> IO a) -> IO a wantWritableHandle fun h@(FileHandle _ m) act = wantWritableHandle' fun h m act wantWritableHandle fun h@(DuplexHandle _ _ m) act - = withHandle_' fun h m act + = wantWritableHandle' fun h m act + -- we know it's not a ReadHandle or ReadWriteHandle, but we have to + -- check for ClosedHandle/SemiClosedHandle. (#4808) wantWritableHandle' :: String -> Handle -> MVar Handle__ @@ -257,7 +259,9 @@ wantReadableHandle_ :: String -> Handle -> (Handle__ -> IO a) -> IO a wantReadableHandle_ fun h@(FileHandle _ m) act = wantReadableHandle' fun h m act wantReadableHandle_ fun h@(DuplexHandle _ m _) act - = withHandle_' fun h m act + = wantReadableHandle' fun h m act + -- we know it's not a WriteHandle or ReadWriteHandle, but we have to + -- check for ClosedHandle/SemiClosedHandle. (#4808) wantReadableHandle' :: String -> Handle -> MVar Handle__