diff options
| author | kr.angelov <kr.angelov@chalmers.se> | 2008-05-23 15:16:28 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@chalmers.se> | 2008-05-23 15:16:28 +0000 |
| commit | 53bfa43a5820e0ac6cceb01b57776ae01b3b92f1 (patch) | |
| tree | e29707cb9f68f09d457ec18394183b8e487d43f6 /src-3.0/GF/System/NoSignal.hs | |
| parent | 0b80bf17d97fe5410c4e6697b6325c777dfee5b0 (diff) | |
allow Ctrl+Break in the shell. Works on Windows too.
Diffstat (limited to 'src-3.0/GF/System/NoSignal.hs')
| -rw-r--r-- | src-3.0/GF/System/NoSignal.hs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src-3.0/GF/System/NoSignal.hs b/src-3.0/GF/System/NoSignal.hs new file mode 100644 index 000000000..5d82a431e --- /dev/null +++ b/src-3.0/GF/System/NoSignal.hs @@ -0,0 +1,29 @@ +---------------------------------------------------------------------- +-- | +-- Module : GF.System.NoSignal +-- Maintainer : Bjorn Bringert +-- Stability : (stability) +-- Portability : (portability) +-- +-- > CVS $Date: 2005/11/11 11:12:50 $ +-- > CVS $Author: bringert $ +-- > CVS $Revision: 1.1 $ +-- +-- Dummy implementation of signal handling. +----------------------------------------------------------------------------- + +module GF.System.NoSignal where + +import Control.Exception (Exception,catch) +import Prelude hiding (catch) + +{-# NOINLINE runInterruptibly #-} +runInterruptibly :: IO a -> IO (Either Exception a) +--runInterruptibly = fmap Right +runInterruptibly a = + p `catch` h + where p = a >>= \x -> return $! Right $! x + h e = return $ Left e + +blockInterrupt :: IO a -> IO a +blockInterrupt = id |
