There are three different methods for attaching a timer to an event-handling method or function: TimerAt, TimerAfter, and TimerEvery. They use the Gamma functions at, after, and every respectively. For example:
method Application.TimerEvery (seconds, fn) { local tid = every (seconds, fn); ._TimerIDs = cons (tid, ._TimerIDs); tid; }
This is a wrapper on the Gamma every function. It creates a timer ID and adds it to the class's list of timer IDs (_TimerIDs). This way the timer can be identified and removed when necessary.
method Application.RemoveTimer(tid) { if (find_equal (tid, ._TimerIDs)) { cancel (tid); .droptimer (tid); } }
This method uses the Gamma find_equal function to locate a timer according to its ID number (tid), and then uses the Gamma cancel function to cancel it.
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.