Make sure routing-updates reflect outer gestalt to updating process

This commit is contained in:
Tony Garnock-Jones 2014-05-25 23:22:59 -04:00
parent 52342e9ce5
commit 4c2abd334c
1 changed files with 5 additions and 4 deletions

View File

@ -272,7 +272,7 @@
(log-info "Process ~a terminating; ~a processes remain" (log-info "Process ~a terminating; ~a processes remain"
pid pid
(hash-count (world-process-table w))) (hash-count (world-process-table w)))
(apply-and-issue-routing-update w (process-gestalt p) (gestalt-empty) (set))) (apply-and-issue-routing-update w (process-gestalt p) (gestalt-empty) (set pid)))
(transition w '()))] (transition w '()))]
[(routing-update gestalt) [(routing-update gestalt)
(define pt (world-process-table w)) (define pt (world-process-table w))
@ -300,9 +300,10 @@
(define affected-pids (gestalt-match affected-subgestalt g)) (define affected-pids (gestalt-match affected-subgestalt g))
(define pt (world-process-table w)) (define pt (world-process-table w))
(for/fold ([w w]) [(pid (in-set (set-union known-targets affected-pids)))] (for/fold ([w w]) [(pid (in-set (set-union known-targets affected-pids)))]
(define p (hash-ref pt pid)) (match (hash-ref pt pid (lambda () #f))
(define g1 (gestalt-filter g (process-gestalt p))) [#f w]
(apply-transition pid (deliver-event (routing-update g1) pid p) w))])) [p (define g1 (gestalt-filter g (process-gestalt p)))
(apply-transition pid (deliver-event (routing-update g1) pid p) w)]))]))
;; This is roughly the "schedule" rule of the calculus. ;; This is roughly the "schedule" rule of the calculus.
(define (step-children w) (define (step-children w)