Fix v2 sync, update the last_notified_ms only if there was an active listener

This commit is contained in:
Mark Haines 2015-05-14 11:25:30 +01:00
parent 5e0c533672
commit 3edd2d5c93
2 changed files with 7 additions and 6 deletions

View File

@ -92,7 +92,7 @@ class SyncHandler(BaseHandler):
result = yield self.current_sync_for_user(sync_config, since_token) result = yield self.current_sync_for_user(sync_config, since_token)
defer.returnValue(result) defer.returnValue(result)
else: else:
def current_sync_callback(): def current_sync_callback(before_token, after_token):
return self.current_sync_for_user(sync_config, since_token) return self.current_sync_for_user(sync_config, since_token)
rm_handler = self.hs.get_handlers().room_member_handler rm_handler = self.hs.get_handlers().room_member_handler

View File

@ -81,14 +81,15 @@ class _NotifierUserStream(object):
self.last_notified_ms = time_now_ms self.last_notified_ms = time_now_ms
def notify(self, stream_key, stream_id, time_now_ms): def notify(self, stream_key, stream_id, time_now_ms):
self.last_notified_ms = time_now_ms
self.current_token = self.current_token.copy_and_replace( self.current_token = self.current_token.copy_and_replace(
stream_key, stream_id stream_key, stream_id
) )
listeners = self.listeners if self.listeners:
self.listeners = set() self.last_notified_ms = time_now_ms
for listener in listeners: listeners = self.listeners
listener.notify(self.current_token) self.listeners = set()
for listener in listeners:
listener.notify(self.current_token)
def remove(self, notifier): def remove(self, notifier):
""" Remove this listener from all the indexes in the Notifier """ Remove this listener from all the indexes in the Notifier