diff options
Diffstat (limited to 'src/GF/System/UseSignal.hs')
| -rw-r--r-- | src/GF/System/UseSignal.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/GF/System/UseSignal.hs b/src/GF/System/UseSignal.hs index 8f3874711..5e6d81237 100644 --- a/src/GF/System/UseSignal.hs +++ b/src/GF/System/UseSignal.hs @@ -48,3 +48,11 @@ runInterruptibly a = -- the computation fails or not. runInterruptibly_ :: IO () -> IO () runInterruptibly_ = fmap (either (const ()) id) . runInterruptibly + +-- | Run an action with SIGINT blocked. +blockInterrupt :: IO a -> IO a +blockInterrupt a = + do oldH <- installHandler sigINT Ignore Nothing + x <- a + installHandler sigINT oldH Nothing + return x |
