mirror of
https://github.com/element-hq/synapse
synced 2024-08-20 08:30:21 +00:00
Merge pull request #3235 from matrix-org/rav/fix_receipts_deferred
Fix error in handling receipts
This commit is contained in:
commit
ed3125b0a1
1 changed files with 11 additions and 7 deletions
|
@ -297,18 +297,22 @@ class ReceiptsWorkerStore(SQLBaseStore):
|
|||
if receipt_type != "m.read":
|
||||
return
|
||||
|
||||
# Returns an ObservableDeferred
|
||||
# Returns either an ObservableDeferred or the raw result
|
||||
res = self.get_users_with_read_receipts_in_room.cache.get(
|
||||
room_id, None, update_metrics=False,
|
||||
)
|
||||
|
||||
if res:
|
||||
if isinstance(res, defer.Deferred) and res.called:
|
||||
# first handle the Deferred case
|
||||
if isinstance(res, defer.Deferred):
|
||||
if res.called:
|
||||
res = res.result
|
||||
if user_id in res:
|
||||
# We'd only be adding to the set, so no point invalidating if the
|
||||
# user is already there
|
||||
return
|
||||
else:
|
||||
res = None
|
||||
|
||||
if res and user_id in res:
|
||||
# We'd only be adding to the set, so no point invalidating if the
|
||||
# user is already there
|
||||
return
|
||||
|
||||
self.get_users_with_read_receipts_in_room.invalidate((room_id,))
|
||||
|
||||
|
|
Loading…
Reference in a new issue