summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/notifier.py11
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])