diff options
author | Erik Johnston <erik@matrix.org> | 2015-02-09 17:41:29 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-02-09 17:41:29 +0000 |
commit | d94f682a4c3e7bab5079d516582f0ee44a3d3f06 (patch) | |
tree | 432ab91b7141e927bdb582c2c364b7bc25e2f939 /synapse/handlers/sync.py | |
parent | Merge pull request #55 from matrix-org/profiling (diff) | |
download | synapse-d94f682a4c3e7bab5079d516582f0ee44a3d3f06.tar.xz |
During room intial sync, only calculate current state once.
Diffstat (limited to 'synapse/handlers/sync.py')
-rw-r--r-- | synapse/handlers/sync.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 439164ae39..5af90cc5d1 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -175,9 +175,10 @@ class SyncHandler(BaseHandler): room_id, sync_config, now_token, ) - current_state_events = yield self.state_handler.get_current_state( + current_state = yield self.state_handler.get_current_state( room_id ) + current_state_events = current_state.values() defer.returnValue(RoomSyncResult( room_id=room_id, @@ -347,9 +348,10 @@ class SyncHandler(BaseHandler): # TODO(mjark): This seems racy since this isn't being passed a # token to indicate what point in the stream this is - current_state_events = yield self.state_handler.get_current_state( + current_state = yield self.state_handler.get_current_state( room_id ) + current_state_events = current_state.values() state_at_previous_sync = yield self.get_state_at_previous_sync( room_id, since_token=since_token @@ -431,6 +433,7 @@ class SyncHandler(BaseHandler): joined = True if joined: - state_delta = yield self.state_handler.get_current_state(room_id) + res = yield self.state_handler.get_current_state(room_id) + state_delta = res.values() defer.returnValue(state_delta) |