Avoid double-execution within a round; see syndicate-lang/syndicate-js#3
This commit is contained in:
parent
16763a8b4f
commit
f785274e35
|
@ -54,11 +54,14 @@
|
||||||
(define workset (dataflow-graph-damaged-nodes g))
|
(define workset (dataflow-graph-damaged-nodes g))
|
||||||
(when (not (hash-empty? workset))
|
(when (not (hash-empty? workset))
|
||||||
(set-dataflow-graph-damaged-nodes! g (hash))
|
(set-dataflow-graph-damaged-nodes! g (hash))
|
||||||
|
(define updated (make-hash))
|
||||||
(hash-for-each workset
|
(hash-for-each workset
|
||||||
(lambda (object-id _)
|
(lambda (object-id _)
|
||||||
(for [(subject-id
|
(for [(subject-id
|
||||||
(in-hashset-values (dataflow-graph-edges-forward g) object-id))]
|
(in-hashset-values (dataflow-graph-edges-forward g) object-id))]
|
||||||
(dataflow-forget-subject! g subject-id)
|
(when (not (hash-has-key? updated subject-id))
|
||||||
(parameterize ((current-dataflow-subject-id subject-id))
|
(hash-set! updated subject-id #t)
|
||||||
(repair-node! subject-id)))))
|
(dataflow-forget-subject! g subject-id)
|
||||||
|
(parameterize ((current-dataflow-subject-id subject-id))
|
||||||
|
(repair-node! subject-id))))))
|
||||||
(loop))))
|
(loop))))
|
||||||
|
|
Loading…
Reference in New Issue