mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2024-12-17 04:44:23 -05:00
Add experimental environment variable to enable asyncio reactor (#12135)
This commit is contained in:
parent
ca9234a9eb
commit
2ce27a24fe
1
changelog.d/12135.feature
Normal file
1
changelog.d/12135.feature
Normal file
@ -0,0 +1 @@
|
|||||||
|
Add experimental env var `SYNAPSE_ASYNC_IO_REACTOR` that causes Synapse to use the asyncio reactor for Twisted.
|
3
mypy.ini
3
mypy.ini
@ -353,3 +353,6 @@ ignore_missing_imports = True
|
|||||||
|
|
||||||
[mypy-zope]
|
[mypy-zope]
|
||||||
ignore_missing_imports = True
|
ignore_missing_imports = True
|
||||||
|
|
||||||
|
[mypy-incremental.*]
|
||||||
|
ignore_missing_imports = True
|
||||||
|
@ -25,6 +25,27 @@ if sys.version_info < (3, 7):
|
|||||||
print("Synapse requires Python 3.7 or above.")
|
print("Synapse requires Python 3.7 or above.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Allow using the asyncio reactor via env var.
|
||||||
|
if bool(os.environ.get("SYNAPSE_ASYNC_IO_REACTOR", False)):
|
||||||
|
try:
|
||||||
|
from incremental import Version
|
||||||
|
|
||||||
|
import twisted
|
||||||
|
|
||||||
|
# We need a bugfix that is included in Twisted 21.2.0:
|
||||||
|
# https://twistedmatrix.com/trac/ticket/9787
|
||||||
|
if twisted.version < Version("Twisted", 21, 2, 0):
|
||||||
|
print("Using asyncio reactor requires Twisted>=21.2.0")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
from twisted.internet import asyncioreactor
|
||||||
|
|
||||||
|
asyncioreactor.install(asyncio.get_event_loop())
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
# Twisted and canonicaljson will fail to import when this file is executed to
|
# Twisted and canonicaljson will fail to import when this file is executed to
|
||||||
# get the __version__ during a fresh install. That's OK and subsequent calls to
|
# get the __version__ during a fresh install. That's OK and subsequent calls to
|
||||||
# actually start Synapse will import these libraries fine.
|
# actually start Synapse will import these libraries fine.
|
||||||
|
Loading…
Reference in New Issue
Block a user