Brian Denheyer <[email protected]> wrote:

> On Mon, 25 Jan 2010 23:19:53 -0800
> Thomas DuBuisson <[email protected]> wrote:
>
> > 1) Don't use System.Posix.Signals
> > It isn't necessary and makes your code less portable
> >
> > 2) The POSIX SIGALRM is used/caught by the RTS and that is why you are
> > seeing strange behavior.
> >
> > 3) Consider using Haskell exceptions from Control.Concurrent
> > (throwTo). Not sure what you want to do but you can always
> > "myThreadId >>= \tid -> forkIO $ threadDelay someDelayTime >>
> > (throwTo tid someExceptionVal)"
> >
>
> I just want a routine to run every 15 min.
>


You can still use Control.Concurrent:
> import Control.Concurrent
>
> doEvent f usDelay = forkIO $
>   threadDelay usDelay
>   doEvent f usDelay
>   f

Or a wrapper around Control.Concurrent - Ex: The Control-Event package.


> I'm not clear on why the throwTo is in you example.
>

It will give you an exception just like you were expecting from SIGALRM.

Thomas
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to