syndicate-nim/tests/test_timer.nim

28 lines
678 B
Nim

# SPDX-FileCopyrightText: 2021 ☭ Emery Hemingway
# SPDX-License-Identifier: Unlicense
import std/[asyncdispatch, monotimes, times]
import preserves, preserves/records
import syndicate
import syndicate/drivers/timers
syndicate plainTimerDemo:
boot timerDriver
spawn "laterThanDemo":
field(deadline, MonoTime, getMonoTime())
field(count, int, 0)
onAsserted(prsTimeLaterThan(deadline.get)) do ():
echo "TimeLaterThan ticked for deadline ", deadline.get
count.set(count.get.succ)
if count.get < 5:
deadline.set(getMonoTime() + initDuration(milliseconds = 500))
onStop:
echo "dataspace stopped"
quit(0)
runForever()