1414# limitations under the License.
1515
1616from twisted .internet import defer
17+
1718from synapse .api .constants import EventTypes , Membership
1819from synapse .api .errors import AuthError
1920from synapse .handlers .presence import format_user_presence_state
2021
21- from synapse .util import DeferredTimedOutError
2222from synapse .util .logutils import log_function
23- from synapse .util .async import ObservableDeferred
23+ from synapse .util .async import (
24+ ObservableDeferred , add_timeout_to_deferred ,
25+ DeferredTimeoutError ,
26+ )
2427from synapse .util .logcontext import PreserveLoggingContext , run_in_background
2528from synapse .util .metrics import Measure
2629from synapse .types import StreamToken
@@ -336,11 +339,12 @@ def wait_for_events(self, user_id, timeout, callback, room_ids=None,
336339 # Now we wait for the _NotifierUserStream to be told there
337340 # is a new token.
338341 listener = user_stream .new_listener (prev_token )
342+ add_timeout_to_deferred (
343+ listener .deferred ,
344+ (end_time - now ) / 1000. ,
345+ )
339346 with PreserveLoggingContext ():
340- yield self .clock .time_bound_deferred (
341- listener .deferred ,
342- time_out = (end_time - now ) / 1000.
343- )
347+ yield listener .deferred
344348
345349 current_token = user_stream .current_token
346350
@@ -351,7 +355,7 @@ def wait_for_events(self, user_id, timeout, callback, room_ids=None,
351355 # Update the prev_token to the current_token since nothing
352356 # has happened between the old prev_token and the current_token
353357 prev_token = current_token
354- except DeferredTimedOutError :
358+ except DeferredTimeoutError :
355359 break
356360 except defer .CancelledError :
357361 break
@@ -556,13 +560,14 @@ def wait_for_replication(self, callback, timeout):
556560 if end_time <= now :
557561 break
558562
563+ add_timeout_to_deferred (
564+ listener .deferred .addTimeout ,
565+ (end_time - now ) / 1000. ,
566+ )
559567 try :
560568 with PreserveLoggingContext ():
561- yield self .clock .time_bound_deferred (
562- listener .deferred ,
563- time_out = (end_time - now ) / 1000.
564- )
565- except DeferredTimedOutError :
569+ yield listener .deferred
570+ except DeferredTimeoutError :
566571 break
567572 except defer .CancelledError :
568573 break
0 commit comments