forked from MirrorHub/synapse
Ensure we never miss any presence updates
This commit is contained in:
parent
0126ef7f3c
commit
1783c7ca92
1 changed files with 7 additions and 1 deletions
|
@ -858,6 +858,9 @@ class PresenceEventSource(object):
|
|||
|
||||
presence = self.hs.get_handlers().presence_handler
|
||||
cachemap = presence._user_cachemap
|
||||
|
||||
max_serial = presence._user_cachemap_latest_serial
|
||||
|
||||
clock = self.clock
|
||||
latest_serial = 0
|
||||
|
||||
|
@ -866,7 +869,7 @@ class PresenceEventSource(object):
|
|||
for observed_user in cachemap.keys():
|
||||
cached = cachemap[observed_user]
|
||||
|
||||
if cached.serial <= from_key:
|
||||
if cached.serial <= from_key or cached.serial > max_serial:
|
||||
continue
|
||||
|
||||
if not (yield self.is_visible(observer_user, observed_user)):
|
||||
|
@ -881,6 +884,9 @@ class PresenceEventSource(object):
|
|||
if serial < from_key:
|
||||
break
|
||||
|
||||
if serial > max_serial:
|
||||
continue
|
||||
|
||||
latest_serial = max(latest_serial, serial)
|
||||
for u in user_ids:
|
||||
updates.append({
|
||||
|
|
Loading…
Reference in a new issue