Check whether avoiding delays maintains truth

This commit is contained in:
Tony Garnock-Jones 2015-04-24 17:30:51 -04:00
parent 7c77223255
commit e00f079871
1 changed files with 17 additions and 13 deletions

View File

@ -84,17 +84,21 @@
(define (after msec thunk) (define (after msec thunk)
(define id (gensym 'after)) (define id (gensym 'after))
(list (if (zero? msec)
(spawn (lambda (e s) (and (message? e) (quit (thunk)))) (thunk)
(void) (list
(sub (timer-expired id ?))) (spawn (lambda (e s) (and (message? e) (quit (thunk))))
(message (set-timer id msec 'relative)))) (void)
(sub (timer-expired id ?)))
(message (set-timer id msec 'relative)))))
(after 1000 (lambda () (define use-delays? #t)
(printf "----- Retracting\n")
(message `(retract (parent bob john))))) (after (if use-delays? 1000 0) (lambda ()
(after 2000 (lambda () (printf "----- Retracting\n")
(printf "----- Asserting\n") (message `(retract (parent bob john)))))
(list (insert-record `(parent bob mary)) (after (if use-delays? 2000 0) (lambda ()
(insert-record `(parent mary sue)) (printf "----- Asserting\n")
(insert-record `(parent sue john))))) (list (insert-record `(parent bob mary))
(insert-record `(parent mary sue))
(insert-record `(parent sue john)))))