[Haskell-cafe] scheduling an alarm

Brian Denheyer briand at aracnet.com
Tue Jan 26 01:25:36 EST 2010


I cobbled the following together from bits and pieces I found on
mailing lists.  Seems straightforward, but the code I've included
just sits there.

The awaitSignal seems to be causing a problem, in that if I remove it
(and don't call forever recursively) then I get my ALARM 5 sec later.

Otherwise nothing.  The problem is that if I don't include awaitSignal,
then, of course, forever is called just as fast as the CPU will go :-)

Brian


import System.Posix.Signals
import System.IO
import Control.Concurrent

alarm =
    do putStrLn "ALARM"
       hFlush stdout
       return ()

forever =
    do putStrLn "foo"
       scheduleAlarm 5
       awaitSignal Nothing
       yield
       forever

main =
    do installHandler realTimeAlarm (Catch alarm) Nothing 
       forever



More information about the Haskell-Cafe mailing list