diff --git a/syndicate/dataspace.rkt b/syndicate/dataspace.rkt index 99fe148..98b242a 100644 --- a/syndicate/dataspace.rkt +++ b/syndicate/dataspace.rkt @@ -427,9 +427,6 @@ (when (facet-live? f) (define ac (facet-actor f)) (define parent (facet-parent f)) - (if parent - (set-facet-children! parent (set-remove (facet-children parent) f)) - (set-actor-root-facet! ac #f)) (set-facet-live?! f #f) @@ -446,9 +443,13 @@ (push-script! #:priority *gc-priority* ds ac (lambda () - (if parent - (when (facet-inert? ds parent) (terminate-facet! ds parent)) - (terminate-actor! ds ac)))))) + (cond + [parent + (set-facet-children! parent (set-remove (facet-children parent) f)) + (when (facet-inert? ds parent) (terminate-facet! ds parent))] + [else + (set-actor-root-facet! ac #f) + (terminate-actor! ds ac)]))))) (define (stop-facet! ds f stop-script) (define ac (facet-actor f))