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.