The basic idea of a timer is that they allow tasks to be run at some
time in the future.
The responsibility of actually running them is then turned over
to someone else, such as the scheduler.
Each timer will be represented by a timer struct.
There are a variety of ways to keep track of the timers. Machines
which don't have sophisticated clock hardware usually call an
interrupt handler at every clock tick.
volatile indicates
that the variable should not be cached in a register but read from
storage each time.
volatile TIME time_now;
[url]http://www.kohala.com/start/libes.timers.txt[/url]
time in the future.
The responsibility of actually running them is then turned over
to someone else, such as the scheduler.
Each timer will be represented by a timer struct.
There are a variety of ways to keep track of the timers. Machines
which don't have sophisticated clock hardware usually call an
interrupt handler at every clock tick.
volatile indicates
that the variable should not be cached in a register but read from
storage each time.
volatile TIME time_now;
[url]http://www.kohala.com/start/libes.timers.txt[/url]