summary refs log tree commit diff
path: root/synapse/api
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2023-02-02 13:45:12 -0500
committerGitHub <noreply@github.com>2023-02-02 13:45:12 -0500
commitda05b70af5bf84825332b2ac0d63c6deda4b376f (patch)
tree7fa89726e634ecd531a0b18cc468198a590dbf47 /synapse/api
parentDo not calculate presence or ephemeral events when they are filtered out (#14... (diff)
downloadsynapse-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.py3
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()