summary refs log tree commit diff
path: root/synapse/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/handlers')
-rw-r--r--synapse/handlers/sync.py34
1 files changed, 9 insertions, 25 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index 80eccf19ae..bc6d6af133 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from synapse.streams.config import PaginationConfig
 from synapse.api.constants import Membership, EventTypes
 from synapse.util.async import concurrently_execute
 from synapse.util.logcontext import LoggingContext
@@ -478,26 +477,6 @@ class SyncHandler(object):
                 for e in sync_config.filter_collection.filter_room_state(state.values())
             })
 
-    def check_joined_room(self, sync_config, state_delta):
-        """
-        Check if the user has just joined the given room (so should
-        be given the full state)
-
-        Args:
-            sync_config(synapse.handlers.sync.SyncConfig):
-            state_delta(dict[(str,str), synapse.events.FrozenEvent]): the
-                difference in state since the last sync
-
-        Returns:
-             A deferred Tuple (state_delta, limited)
-        """
-        join_event = state_delta.get((
-            EventTypes.Member, sync_config.user.to_string()), None)
-        if join_event is not None:
-            if join_event.content["membership"] == Membership.JOIN:
-                return True
-        return False
-
     @defer.inlineCallbacks
     def unread_notifs_for_room_id(self, room_id, sync_config):
         with Measure(self.clock, "unread_notifs_for_room_id"):
@@ -664,8 +643,8 @@ class SyncHandler(object):
 
             tags_by_room = yield self.store.get_tags_for_user(user_id)
 
-        for room_entry in joined:
-            yield self._generate_room_entry(
+        def handle_joined(room_entry):
+            return self._generate_room_entry(
                 "joined",
                 sync_result_builer,
                 ignored_users,
@@ -675,8 +654,11 @@ class SyncHandler(object):
                 account_data=account_data_by_room.get(room_entry.room_id, {}),
                 always_include=sync_result_builer.full_state,
             )
-        for room_entry in archived:
-            yield self._generate_room_entry(
+
+        yield concurrently_execute(handle_joined, joined, 10)
+
+        def handle_archived(room_entry):
+            return self._generate_room_entry(
                 "archived",
                 sync_result_builer,
                 ignored_users,
@@ -687,6 +669,8 @@ class SyncHandler(object):
                 always_include=sync_result_builer.full_state,
             )
 
+        yield concurrently_execute(handle_archived, archived, 10)
+
         sync_result_builer.invited.extend(invited)
 
         # Now we want to get any newly joined users