mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 17:54:48 -04:00
Backport deferred.addTimeout
Twisted 16.0 doesn't have addTimeout, so let's backport it.
This commit is contained in:
parent
1ea904b9f0
commit
9d2c1b8429
5 changed files with 90 additions and 14 deletions
|
@ -28,7 +28,7 @@ class RequestTimedOutError(SynapseError):
|
|||
def cancelled_to_request_timed_out_error(value):
|
||||
"""Turns CancelledErrors into RequestTimedOutErrors.
|
||||
|
||||
For use with deferred.addTimeout()
|
||||
For use with async.add_timeout_to_deferred
|
||||
"""
|
||||
if isinstance(value, failure.Failure):
|
||||
value.trap(CancelledError)
|
||||
|
|
|
@ -20,6 +20,7 @@ from synapse.api.errors import (
|
|||
CodeMessageException, MatrixCodeMessageException, SynapseError, Codes,
|
||||
)
|
||||
from synapse.http import cancelled_to_request_timed_out_error
|
||||
from synapse.util.async import add_timeout_to_deferred
|
||||
from synapse.util.caches import CACHE_SIZE_FACTOR
|
||||
from synapse.util.logcontext import make_deferred_yieldable
|
||||
import synapse.metrics
|
||||
|
@ -102,8 +103,9 @@ class SimpleHttpClient(object):
|
|||
request_deferred = self.agent.request(
|
||||
method, uri, *args, **kwargs
|
||||
)
|
||||
request_deferred.addTimeout(
|
||||
60, reactor, cancelled_to_request_timed_out_error,
|
||||
add_timeout_to_deferred(
|
||||
request_deferred,
|
||||
60, cancelled_to_request_timed_out_error,
|
||||
)
|
||||
response = yield make_deferred_yieldable(request_deferred)
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ from twisted.web._newclient import ResponseDone
|
|||
from synapse.http import cancelled_to_request_timed_out_error
|
||||
from synapse.http.endpoint import matrix_federation_endpoint
|
||||
import synapse.metrics
|
||||
from synapse.util.async import sleep
|
||||
from synapse.util.async import sleep, add_timeout_to_deferred
|
||||
from synapse.util import logcontext
|
||||
from synapse.util.logcontext import make_deferred_yieldable
|
||||
import synapse.util.retryutils
|
||||
|
@ -193,9 +193,10 @@ class MatrixFederationHttpClient(object):
|
|||
Headers(headers_dict),
|
||||
producer
|
||||
)
|
||||
request_deferred.addTimeout(
|
||||
add_timeout_to_deferred(
|
||||
request_deferred,
|
||||
timeout / 1000. if timeout else 60,
|
||||
reactor, cancelled_to_request_timed_out_error,
|
||||
cancelled_to_request_timed_out_error,
|
||||
)
|
||||
response = yield make_deferred_yieldable(
|
||||
request_deferred,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue