-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Conversation
Instead of always building EDUs on the writer process and using the federation send queue to stream to the federation senders, we manage sending of EDUs on the federation senders by looking at typing replication stream. This means we also have to move the timers for federation pokes to the federation sending processes too.
54148b1
to
1342863
Compare
1342863
to
f65b828
Compare
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
# map room IDs to serial numbers | ||
self._room_serials = {} | ||
# map room IDs to sets of users currently typing | ||
self._room_typing = {} | ||
|
||
self._member_typing_until = {} # clock time we expect to stop | ||
self._member_last_federation_poke = {} | ||
|
||
self.wheel_timer = WheelTimer(bucket_size=5000) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could just call self._reset
here, but I suspect this code was all copy and pasted. 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeeeeeeeeeeeeeees, though I'm not a huge fan of declaring attributes in not __init__
tbh :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, that's true. I think type checkers don't like that. :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks good. 👍
A lot of this is various bits of rejigging, so probably worth looking at the commits.