2021-06-04 13:56:03 +00:00
|
|
|
;;; SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
;;; SPDX-FileCopyrightText: Copyright © 2010-2021 Tony Garnock-Jones <tonyg@leastfixedpoint.com>
|
2021-06-01 15:19:24 +00:00
|
|
|
|
2020-04-27 18:27:48 +00:00
|
|
|
#lang syndicate
|
2018-04-29 21:27:55 +00:00
|
|
|
|
2020-04-27 18:27:48 +00:00
|
|
|
(require/activate syndicate/drivers/timer)
|
2018-04-29 21:27:55 +00:00
|
|
|
|
|
|
|
(spawn #:name 'plain-timer-demo
|
|
|
|
(field [count 0])
|
|
|
|
(on-start (send! (set-timer 'main-timer 0 'relative)))
|
|
|
|
(on (message (timer-expired 'main-timer $now))
|
|
|
|
(log-info "main-timer expired at ~a" now)
|
|
|
|
(count (+ (count) 1))
|
|
|
|
(when (< (count) 5)
|
|
|
|
(send! (set-timer 'main-timer 500 'relative)))))
|
|
|
|
|
|
|
|
(spawn #:name 'later-than-demo
|
|
|
|
(field [deadline (current-inexact-milliseconds)]
|
|
|
|
[count 0])
|
|
|
|
(on (asserted (later-than (deadline)))
|
|
|
|
(log-info "later-than ticked for deadline ~a" (deadline))
|
|
|
|
(count (+ (count) 1))
|
|
|
|
(when (< (count) 5)
|
|
|
|
(deadline (+ (deadline) 500)))))
|