logo       

signal handling weirdness: msg#00079

lang.haskell.glasgow.bugs

Subject: signal handling weirdness

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.


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise