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 iso create(env: Env) => _env = env fun ref apply(timer: Timer, count: U64): Bool => _env.out.print(_counter.string()) _counter = _counter + 1 true
class ref Timer
Create a new timer. The expiration time should be a nanosecond count until the first expiration. The interval should also be in nanoseconds.
new iso create( notify: TimerNotify iso, expiration: U64 val, interval: U64 val = 0) : Timer iso^
- 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 ref abs( notify: TimerNotify ref, expiration: (I64 val , I64 val), interval: U64 val = 0) : Timer ref^
- Timer ref^