@@ -276,7 +276,7 @@ def _compute_next_retry_delay(self):
276276 # it should continue to double until the retry maximum, and then hold
277277 # steady (- jitter).
278278 if self .__retry_delay_reset_threshold > 0 and self ._retry_reset_baseline != 0 :
279- now = time .time ()
279+ now = time .monotonic ()
280280 connection_duration = now - self ._retry_reset_baseline
281281 if connection_duration >= self .__retry_delay_reset_threshold :
282282 self .__current_retry_delay_strategy = self .__base_retry_delay_strategy
@@ -294,7 +294,7 @@ def _try_start(self, can_return_fault: bool) -> Union[None, Start, Fault]:
294294 self .__next_retry_delay
295295 if self .__disconnected_time == 0
296296 else self .__next_retry_delay
297- - (time .time () - self .__disconnected_time )
297+ - (time .monotonic () - self .__disconnected_time )
298298 )
299299 if delay > 0 :
300300 self .__logger .info ("Will reconnect after delay of %fs" % delay )
@@ -304,7 +304,7 @@ def _try_start(self, can_return_fault: bool) -> Union[None, Start, Fault]:
304304 self .__last_event_id
305305 )
306306 except Exception as e :
307- self .__disconnected_time = time .time ()
307+ self .__disconnected_time = time .monotonic ()
308308 self ._compute_next_retry_delay ()
309309 fail_or_continue , self .__current_error_strategy = (
310310 self .__current_error_strategy .apply (e )
@@ -316,7 +316,7 @@ def _try_start(self, can_return_fault: bool) -> Union[None, Start, Fault]:
316316 # If can_return_fault is false, it means the caller explicitly called start(), in
317317 # which case there's no way to return a Fault so we just keep retrying transparently.
318318 continue
319- self ._retry_reset_baseline = time .time ()
319+ self ._retry_reset_baseline = time .monotonic ()
320320 self .__current_error_strategy = self .__base_error_strategy
321321 self .__interrupted = False
322322 return Start (self .__connection_result .headers )
0 commit comments