Make sure routing-updates reflect outer gestalt to updating process
This commit is contained in:
parent
52342e9ce5
commit
4c2abd334c
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue