Make box-and-client work better with raco test
This commit is contained in:
parent
d648af920a
commit
6a0bcb1246
|
@ -4,23 +4,24 @@
|
|||
(struct set-box (new-value) #:prefab)
|
||||
(struct box-state (value) #:prefab)
|
||||
|
||||
(actor-system/dataspace (ds)
|
||||
(spawn #:name 'box
|
||||
(define-field current-value 0)
|
||||
(at ds
|
||||
(assert (box-state (current-value)))
|
||||
(when (message (set-box $new-value))
|
||||
(log-info "box: taking on new-value ~v" new-value)
|
||||
(current-value new-value)))
|
||||
(stop-when-true (= (current-value) 10)
|
||||
(log-info "box: terminating")))
|
||||
(module+ main
|
||||
(actor-system/dataspace (ds)
|
||||
(spawn #:name 'box
|
||||
(define-field current-value 0)
|
||||
(at ds
|
||||
(assert (box-state (current-value)))
|
||||
(when (message (set-box $new-value))
|
||||
(log-info "box: taking on new-value ~v" new-value)
|
||||
(current-value new-value)))
|
||||
(stop-when-true (= (current-value) 10)
|
||||
(log-info "box: terminating")))
|
||||
|
||||
(spawn #:name 'client
|
||||
(at ds
|
||||
(stop-when (retracted (Observe (:pattern (set-box ,_)) _))
|
||||
(log-info "client: box has gone"))
|
||||
(when (asserted (box-state $v))
|
||||
(log-info "client: learned that box's value is now ~v" v)
|
||||
(send! ds (set-box (+ v 1))))
|
||||
(when (retracted (box-state _))
|
||||
(log-info "client: box state disappeared")))))
|
||||
(spawn #:name 'client
|
||||
(at ds
|
||||
(stop-when (retracted (Observe (:pattern (set-box ,_)) _))
|
||||
(log-info "client: box has gone"))
|
||||
(when (asserted (box-state $v))
|
||||
(log-info "client: learned that box's value is now ~v" v)
|
||||
(send! ds (set-box (+ v 1))))
|
||||
(when (retracted (box-state _))
|
||||
(log-info "client: box state disappeared"))))))
|
||||
|
|
Loading…
Reference in New Issue