On Thu, Dec 15, 2005 at 10:46:55AM +0000, Joel Reymont wrote:
> One idea would be to index the timer on ThreadId and name and stick
> Nothing into the timer action once the timer has been fired/stopped.
> Since timers are restarted with the same name quite often this would
> just keep one relatively big map in memory. The additional ThreadId
> would help distinguish the timers and avoid clashes.
I don't know how you use your timers, but perhaps startTimer could
return a cancel action? It's type would be
startTimer :: Int -> (IO ()) -> IO (IO ())
and you would use it like this
cancel <- startTimer delay action
...
cancel
How cancelling was implemented would be entirely startTimer's business.
Best regards
Tomasz
--
I am searching for a programmer who is good at least in some of
[Haskell, ML, C++, Linux, FreeBSD, math] for work in Warsaw, Poland
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe