Timer class represents a timer that fires after an expiration
time, and then fires at an interval. When a
Timer fires, it calls
apply method of the
TimerNotify object that was passed to it
when it was created.
The following example waits 5 seconds and then fires every 2
seconds, and when it fires the
TimerNotify object prints how many
times it has been called:
use "time" actor Main new create(env: Env) => let timers = Timers let timer = Timer(Notify(env), 5_000_000_000, 2_000_000_000) timers(consume timer) class Notify is TimerNotify let _env: Env var _counter: U32 = 0 new create(env: Env) => _env = env fun apply(timer: Timer, count: U64): Bool => _env.out.print(_counter.string()) _counter = _counter + 1 true
Create a new timer. The expiration time should be a nanosecond count until the first expiration. The interval should also be in nanoseconds.
new create( notify: TimerNotify , expiration: U64 , interval: U64 = 0) : Timer ^
- Timer iso^
Creates a new timer with an absolute expiration time rather than a relative time. The expiration time is wall-clock adjusted system time.
new abs( notify: TimerNotify , expiration: (I64 , I64 ), interval: U64 = 0) : Timer ^
- Timer ref^