Commit 1c6ce98a authored by sof's avatar sof
Browse files

[project @ 1999-05-10 16:52:10 by sof]

PrelHandle.withHandle: don't catch IO exceptions.
parent 2d742383
% -----------------------------------------------------------------------------
% $Id: PrelException.lhs,v 1.5 1999/03/17 13:19:20 simonm Exp $
% $Id: PrelException.lhs,v 1.6 1999/05/10 16:52:10 sof Exp $
%
% (c) The GRAP/AQUA Project, Glasgow University, 1998
%
......@@ -115,6 +115,11 @@ catch :: IO a -> (IOError -> IO a) -> IO a
catch m k = catchException m handler
where handler (IOException err) = k err
handler other = throw other
catchNonIO :: IO a -> (Exception -> IO a) -> IO a
catchNonIO m k = catchException m handler
where handler (IOException err) = ioError err
handler other = k other
\end{code}
Why is this stuff here? To avoid recursive module dependencies of
......
......@@ -85,7 +85,7 @@ newHandle hc = newMVar hc >>= \ h ->
-- exception occur while performing said op.
withHandle (Handle h) act = do
h_ <- takeMVar h
v <- catchException (act h_) (\ ex -> putMVar h h_ >> throw ex)
v <- catchNonIO (act h_) (\ ex -> putMVar h h_ >> throw ex)
return v
writeHandle (Handle h) hc = putMVar h hc
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment