every — a timer that initiates an action every number of seconds.


every (seconds, action...)




The number of seconds. This may be fractional. Realistically the operating system will not be able to keep up with numbers below about 0.05. This will differ from machine to machine.


The actions to perform continuously every given number of seconds.


An integer number which may be used as the argument to cancel.


This function specifies an action to be performed every time the number of seconds elapses. The return value is a unique timer number which may be used to cancel the action prior to the time expiring by calling cancel. The number of seconds may be specified to arbitrary precision, but will be limited in fact by the timer resolution of the operating system. In most cases this is practically limited to 20 milliseconds (0.05 seconds).

The timer functions after, every and at all cause the action to occur at the specified time, regardless of what is happening at that time, except if the timer expires during garbage collection. In this case, the timer will be serviced as soon as the garbage collection finishes.

For Gamma to notice a timer, you must make a call to next_event. To notice repeating timers, the call to next_event can be used with a call to while(t).


Print hello every 5 seconds.

Gamma> every(5, #princ("Hello\n"));
Gamma> while(t) next_event();

See Also

after, at, _timers_ in Predefined Symbosl