22 lines
628 B
Racket
22 lines
628 B
Racket
#lang syndicate
|
|
;; Test cleanup after exception in stop script
|
|
;;
|
|
;; Correct output:
|
|
;;
|
|
;; inner gone
|
|
;; outer gone
|
|
;; middle gone
|
|
;;
|
|
;; (or some permutation of these) plus an exception report for the division by zero.
|
|
|
|
(assertion-struct layer (name))
|
|
|
|
(spawn (define root-facet (current-facet-id))
|
|
(assert (layer 'outer))
|
|
(on-start (react (assert (layer 'middle))
|
|
(on-start (flush!) (flush!) (stop-facet root-facet))
|
|
(on-stop (/ 1 0))
|
|
(on-start (react (assert (layer 'inner)))))))
|
|
|
|
(spawn (on (retracted (layer $x)) (printf "~a gone\n" x)))
|