summary refs log tree commit diff
path: root/synapse/handlers
diff options
context:
space:
mode:
authorAmber Brown <hawkowl@atleastfornow.net>2018-11-03 00:19:23 +1100
committerGitHub <noreply@github.com>2018-11-03 00:19:23 +1100
commitcb7a6b2379e0e0a4ba8043da98e376b45d05b977 (patch)
treea1eb48d453fc0b444216d2ebf0ea05af4f4244d4 /synapse/handlers
parentMerge pull request #4132 from matrix-org/rav/fix_device_list_locking (diff)
downloadsynapse-cb7a6b2379e0e0a4ba8043da98e376b45d05b977.tar.xz
Fix typing being reset causing infinite syncs (#4127)
Diffstat (limited to 'synapse/handlers')
-rw-r--r--synapse/handlers/typing.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/synapse/handlers/typing.py b/synapse/handlers/typing.py
index c610933dd4..a61bbf9392 100644
--- a/synapse/handlers/typing.py
+++ b/synapse/handlers/typing.py
@@ -63,11 +63,8 @@ class TypingHandler(object):
         self._member_typing_until = {}  # clock time we expect to stop
         self._member_last_federation_poke = {}
 
-        # map room IDs to serial numbers
-        self._room_serials = {}
         self._latest_room_serial = 0
-        # map room IDs to sets of users currently typing
-        self._room_typing = {}
+        self._reset()
 
         # caches which room_ids changed at which serials
         self._typing_stream_change_cache = StreamChangeCache(
@@ -79,6 +76,15 @@ class TypingHandler(object):
             5000,
         )
 
+    def _reset(self):
+        """
+        Reset the typing handler's data caches.
+        """
+        # map room IDs to serial numbers
+        self._room_serials = {}
+        # map room IDs to sets of users currently typing
+        self._room_typing = {}
+
     def _handle_timeouts(self):
         logger.info("Checking for typing timeouts")