signal handling weirdness

Volker Wysk post at volker-wysk.de
Sun Apr 17 09:00:45 EDT 2005


Hello.

I'm trying to install a handler for the TERM signal:


import System.Posix.Signals
import System.Posix.Unistd
import Monad

main =
   do installHandler sigTERM handler Nothing
      sequence (repeat (putStrLn "bla" >> sleep 5))
      return ()

handler = Catch (putStrLn "caught SIGTERM")
-- handler = Ignore


When you type ^C, the current pause gets cut short, but the program continues 
to output "bla". It then terminates after another three to five "bla"'s. 
Installing a signal handler has no effect at all, regardless of whether it's 
Ignore or Catch (...).


/tmp $ ghc -o sig sig.hs  -package posix
/tmp $ ./sig
bla
bla
bla
bla
bla
sig: interrupted


I'm using GHC 6.4 on Debian Linux.


Bye,
V.W.



More information about the Glasgow-haskell-bugs mailing list