diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-02-02 13:45:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-02 13:45:12 -0500 |
commit | da05b70af5bf84825332b2ac0d63c6deda4b376f (patch) | |
tree | 7fa89726e634ecd531a0b18cc468198a590dbf47 /synapse/api | |
parent | Do not calculate presence or ephemeral events when they are filtered out (#14... (diff) | |
download | synapse-da05b70af5bf84825332b2ac0d63c6deda4b376f.tar.xz |
Skip unused calculations in sync handler. (#14908)
If a sync request does not need to calculate per-room entries & is not generating presence & is not generating device list data (e.g. during initial sync) avoid the expensive calculation of room specific data. This is a micro-optimisation for clients syncing simply to receive to-device information.
Diffstat (limited to 'synapse/api')
-rw-r--r-- | synapse/api/filtering.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/synapse/api/filtering.py b/synapse/api/filtering.py index 4cf8f0cc8e..2b5af264b4 100644 --- a/synapse/api/filtering.py +++ b/synapse/api/filtering.py @@ -283,6 +283,9 @@ class FilterCollection: await self._room_filter.filter(events) ) + def blocks_all_rooms(self) -> bool: + return self._room_filter.filters_all_rooms() + def blocks_all_presence(self) -> bool: return ( self._presence_filter.filters_all_types() |