Add datum-tset-empty to avoid some calls to canonicalize
This commit is contained in:
parent
6d40b1c541
commit
623140dc36
|
@ -95,7 +95,7 @@
|
||||||
(define (compute-affected-pids routing-table cover)
|
(define (compute-affected-pids routing-table cover)
|
||||||
(trie-match-trie cover
|
(trie-match-trie cover
|
||||||
(trie-step routing-table struct:observe)
|
(trie-step routing-table struct:observe)
|
||||||
#:seed (datum-tset)
|
#:seed datum-tset-empty
|
||||||
#:combiner (lambda (v1 v2 acc) (tset-union v2 acc))
|
#:combiner (lambda (v1 v2 acc) (tset-union v2 acc))
|
||||||
#:left-short (lambda (v r acc)
|
#:left-short (lambda (v r acc)
|
||||||
(tset-union acc (success-value (trie-step r EOS))))))
|
(tset-union acc (success-value (trie-step r EOS))))))
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
(define (mux-route-message m body)
|
(define (mux-route-message m body)
|
||||||
(if (trie-lookup (mux-routing-table m) body #f) ;; some other stream has declared body
|
(if (trie-lookup (mux-routing-table m) body #f) ;; some other stream has declared body
|
||||||
'()
|
'()
|
||||||
(tset->list (trie-lookup (mux-routing-table m) (observe body) (datum-tset)))))
|
(tset->list (trie-lookup (mux-routing-table m) (observe body) datum-tset-empty))))
|
||||||
|
|
||||||
(define (mux-interests-of m label)
|
(define (mux-interests-of m label)
|
||||||
(hash-ref (mux-interest-table m) label (trie-empty)))
|
(hash-ref (mux-interest-table m) label (trie-empty)))
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
(define cover (trie-union (patch-added delta) (patch-removed delta)))
|
(define cover (trie-union (patch-added delta) (patch-removed delta)))
|
||||||
(trie-match-trie cover
|
(trie-match-trie cover
|
||||||
(trie-step routing-table struct:observe)
|
(trie-step routing-table struct:observe)
|
||||||
#:seed (datum-tset)
|
#:seed datum-tset-empty
|
||||||
#:combiner (lambda (v1 v2 acc) (tset-union v2 acc))
|
#:combiner (lambda (v1 v2 acc) (tset-union v2 acc))
|
||||||
#:left-short (lambda (v r acc)
|
#:left-short (lambda (v r acc)
|
||||||
(tset-union acc (success-value (trie-step r EOS))))))
|
(tset-union acc (success-value (trie-step r EOS))))))
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
(define (mux-route-message m body)
|
(define (mux-route-message m body)
|
||||||
(if (trie-lookup (mux-routing-table m) body #f) ;; some other stream has declared body
|
(if (trie-lookup (mux-routing-table m) body #f) ;; some other stream has declared body
|
||||||
'()
|
'()
|
||||||
(tset->list (trie-lookup (mux-routing-table m) (observe body) (datum-tset)))))
|
(tset->list (trie-lookup (mux-routing-table m) (observe body) datum-tset-empty))))
|
||||||
|
|
||||||
(define (mux-interests-of m label)
|
(define (mux-interests-of m label)
|
||||||
(hash-ref (mux-interest-table m) label (trie-empty)))
|
(hash-ref (mux-interest-table m) label (trie-empty)))
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
(provide tset?
|
(provide tset?
|
||||||
datum-tset
|
datum-tset
|
||||||
|
datum-tset-empty
|
||||||
make-tset
|
make-tset
|
||||||
tset-count
|
tset-count
|
||||||
tset-empty
|
tset-empty
|
||||||
|
@ -72,6 +73,8 @@
|
||||||
(define (tset-member? t k)
|
(define (tset-member? t k)
|
||||||
(treap-has-key? t k))
|
(treap-has-key? t k))
|
||||||
|
|
||||||
|
(define datum-tset-empty (datum-tset))
|
||||||
|
|
||||||
(module+ test
|
(module+ test
|
||||||
(require rackunit)
|
(require rackunit)
|
||||||
(require data/order)
|
(require data/order)
|
||||||
|
|
Loading…
Reference in New Issue