1 files changed, 6 insertions, 5 deletions
diff --git a/synapse/notifier.py b/synapse/notifier.py
index 1a6a2c780c..76637b176d 100644
--- a/synapse/notifier.py
+++ b/synapse/notifier.py
@@ -350,14 +350,15 @@ class Notifier(object):
while not result and not timed_out[0]:
new_token = yield deferred
- deferred = defer.Deferred()
- listener = _NotificationListener(deferred, timeout)
- listeners.append(listener)
- user_stream.listeners.add(listener)
-
result = yield callback(current_token, new_token)
current_token = new_token
+ if not result:
+ deferred = defer.Deferred()
+ listener = _NotificationListener(deferred, timeout)
+ listeners.append(listener)
+ user_stream.listeners.add(listener)
+
if timer[0] is not None:
try:
self.clock.cancel_call_later(timer[0])
|