mirror of
https://github.com/home-assistant/core.git
synced 2025-07-29 18:28:14 +02:00
Speed up removing MQTT subscriptions (#118088)
This commit is contained in:
@ -429,10 +429,10 @@ class MQTT:
|
||||
self.config_entry = config_entry
|
||||
self.conf = conf
|
||||
|
||||
self._simple_subscriptions: defaultdict[str, list[Subscription]] = defaultdict(
|
||||
list
|
||||
self._simple_subscriptions: defaultdict[str, set[Subscription]] = defaultdict(
|
||||
set
|
||||
)
|
||||
self._wildcard_subscriptions: list[Subscription] = []
|
||||
self._wildcard_subscriptions: set[Subscription] = set()
|
||||
# _retained_topics prevents a Subscription from receiving a
|
||||
# retained message more than once per topic. This prevents flooding
|
||||
# already active subscribers when new subscribers subscribe to a topic
|
||||
@ -789,9 +789,9 @@ class MQTT:
|
||||
The caller is responsible clearing the cache of _matching_subscriptions.
|
||||
"""
|
||||
if subscription.is_simple_match:
|
||||
self._simple_subscriptions[subscription.topic].append(subscription)
|
||||
self._simple_subscriptions[subscription.topic].add(subscription)
|
||||
else:
|
||||
self._wildcard_subscriptions.append(subscription)
|
||||
self._wildcard_subscriptions.add(subscription)
|
||||
|
||||
@callback
|
||||
def _async_untrack_subscription(self, subscription: Subscription) -> None:
|
||||
|
Reference in New Issue
Block a user