During room intial sync, only calculate current state once.

This commit is contained in:
Erik Johnston 2015-02-09 17:41:29 +00:00
parent 76c5a5c2f6
commit d94f682a4c
4 changed files with 43 additions and 21 deletions

View file

@ -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)