Notes on important routing-update issues to address

This commit is contained in:
Tony Garnock-Jones 2014-05-21 23:17:04 -04:00
parent a7d8051e2e
commit bad652d0c5
1 changed files with 9 additions and 0 deletions

View File

@ -202,6 +202,11 @@
[#f w]
[p (struct-copy world w [process-table (hash-set pt pid (fp p))])]))
;; TODO: currently, aggregate-gestalt updates are applied at
;; action-interpretation time (and when an event is injected from
;; outside). This could mean very rapid changes are glossed over, with
;; only a summary of the resulting table being delivered out to
;; processes after the activity has died down.
(define (update-aggregate-gestalt w pid old-g new-g)
(struct-copy world w [aggregate-gestalt
(gestalt-union (gestalt-erase-path (world-aggregate-gestalt w)
@ -230,6 +235,10 @@
[next-pid (+ new-pid 1)]
[process-table (hash-set (world-process-table w) new-pid new-p)]))
(w (mark-pid-runnable w new-pid)))
;; TODO: figure out how to send the new process an initial
;; gestalt. Currently, it doesn't get one because we filter
;; updates by *change*, and the world hasn't "changed" here so
;; the process doesn't see the "new" state of the world.
(log-info "Spawned process ~a ~v ~v" new-pid (process-behavior new-p) (process-state new-p))
(apply-and-issue-routing-update w new-pid (gestalt-empty) new-gestalt))]
[(quit)