also clean up hashes for views with no subscriptions
This commit is contained in:
parent
bbb3a3f189
commit
c2ef73e311
|
@ -98,6 +98,14 @@
|
|||
(dissoc subscribed subscriber-key)
|
||||
subscribed)))))
|
||||
|
||||
(defn- clean-up-unneeded-hashes
|
||||
[view-system view-sig]
|
||||
; hashes for view-sigs which do not have any unsubscribers are no longer necessary
|
||||
; to keep around (again, at risk of endlessly filling up with tons of hashes over time)
|
||||
(if-not (get (:subscribers view-system) view-sig)
|
||||
(update-in view-system [:hashes] dissoc view-sig)
|
||||
view-system))
|
||||
|
||||
(defn unsubscribe!
|
||||
[namespace view-id parameters subscriber-key]
|
||||
(swap! view-system
|
||||
|
@ -105,7 +113,8 @@
|
|||
(let [view-sig [namespace view-id parameters]]
|
||||
(-> vs
|
||||
(remove-from-subscribed view-sig subscriber-key)
|
||||
(remove-from-subscribers view-sig subscriber-key))))))
|
||||
(remove-from-subscribers view-sig subscriber-key)
|
||||
(clean-up-unneeded-hashes view-sig))))))
|
||||
|
||||
(defn unsubscribe-all!
|
||||
"Remove all subscriptions by a given subscriber."
|
||||
|
|
Loading…
Reference in a new issue