Guard against double-adhoc-assertion

This commit is contained in:
Tony Garnock-Jones 2018-04-25 19:46:08 +01:00
parent 9726376c82
commit c06d5ba3ce
1 changed files with 6 additions and 4 deletions

View File

@ -495,13 +495,15 @@
(bag-change! (ensure-patch-action! ac) assertion +1)))
(define (adhoc-retract! ac assertion)
(when (not (void? assertion))
(set-actor-adhoc-assertions! ac (set-remove (actor-adhoc-assertions ac) assertion))
(define adhoc-assertions (actor-adhoc-assertions ac))
(when (and (not (void? assertion)) (set-member? adhoc-assertions assertion))
(set-actor-adhoc-assertions! ac (set-remove adhoc-assertions assertion))
(retract! ac assertion)))
(define (adhoc-assert! ac assertion)
(when (not (void? assertion))
(set-actor-adhoc-assertions! ac (set-add (actor-adhoc-assertions ac) assertion))
(define adhoc-assertions (actor-adhoc-assertions ac))
(when (and (not (void? assertion)) (not (set-member? adhoc-assertions assertion)))
(set-actor-adhoc-assertions! ac (set-add adhoc-assertions assertion))
(assert! ac assertion)))
(define (dataspace-unsubscribe! ds h)