|
|
|
@ -368,15 +368,18 @@
@@ -368,15 +368,18 @@
|
|
|
|
|
;; (for [((a c) (in-bag/count ds-assertions))] (log-info " . ~v = ~v" a c)) |
|
|
|
|
;; (for [((a c) (in-bag/count delta))] (log-info " → ~v = ~v" a c)) |
|
|
|
|
(define rt (dataspace-routing-table ds)) |
|
|
|
|
(define pending-removals '()) |
|
|
|
|
(define new-cleanup-changes |
|
|
|
|
(for/fold [(cleanup-changes (actor-cleanup-changes ac))] [((a count) (in-bag/count delta))] |
|
|
|
|
(match (bag-change! ds-assertions a count) |
|
|
|
|
['present->absent (remove-assertion! rt a)] |
|
|
|
|
['present->absent (set! pending-removals (cons a pending-removals))] |
|
|
|
|
['absent->present (add-assertion! rt a)] |
|
|
|
|
;; 'absent->absent absurd |
|
|
|
|
['present->present (void)]) ;; i.e. no visible change |
|
|
|
|
(define-values (updated-bag _summary) (bag-change cleanup-changes a (- count))) |
|
|
|
|
updated-bag)) |
|
|
|
|
(for [(a (in-list pending-removals))] |
|
|
|
|
(remove-assertion! rt a)) |
|
|
|
|
(set-actor-cleanup-changes! ac new-cleanup-changes))) |
|
|
|
|
|
|
|
|
|
(define (run-scripts! ds) |
|
|
|
|