diff options
author | Erik Johnston <erik@matrix.org> | 2016-05-09 10:10:06 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-05-09 10:10:06 +0100 |
commit | f6ebaf4a3255fa298cb0c8a7f23294265038de7b (patch) | |
tree | 3282afbf9be06783c75de258fd396011d418bcb2 | |
parent | Merge pull request #767 from matrix-org/erikj/transaction_txn (diff) | |
download | synapse-f6ebaf4a3255fa298cb0c8a7f23294265038de7b.tar.xz |
Run transaction queue on reactor
This ensures that any CPU work that happens doesn't block message sending.
-rw-r--r-- | synapse/federation/transaction_queue.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/synapse/federation/transaction_queue.py b/synapse/federation/transaction_queue.py index 1928da03b3..5787f854d4 100644 --- a/synapse/federation/transaction_queue.py +++ b/synapse/federation/transaction_queue.py @@ -20,6 +20,7 @@ from .persistence import TransactionActions from .units import Transaction from synapse.api.errors import HttpResponseException +from synapse.util.async import run_on_reactor from synapse.util.logutils import log_function from synapse.util.logcontext import PreserveLoggingContext from synapse.util.retryutils import ( @@ -199,6 +200,8 @@ class TransactionQueue(object): @defer.inlineCallbacks @log_function def _attempt_new_transaction(self, destination): + yield run_on_reactor() + # list of (pending_pdu, deferred, order) if destination in self.pending_transactions: # XXX: pending_transactions can get stuck on by a never-ending |