mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
runtornado: Switch to asyncio event loop.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
committed by
Alex Vandiver
parent
c263bfdb41
commit
6fd1a558b7
16
zerver/lib/async_utils.py
Normal file
16
zerver/lib/async_utils.py
Normal file
@@ -0,0 +1,16 @@
|
||||
import asyncio
|
||||
|
||||
|
||||
class NoAutoCreateEventLoopPolicy(asyncio.DefaultEventLoopPolicy): # type: ignore[misc,valid-type] # https://github.com/python/typeshed/issues/7452
|
||||
"""
|
||||
By default asyncio.get_event_loop() automatically creates an event
|
||||
loop for the main thread if one isn't currently installed. Since
|
||||
Django intentionally uninstalls the event loop within
|
||||
sync_to_async, that autocreation proliferates confusing extra
|
||||
event loops that will never be run. It is also deprecated in
|
||||
Python 3.10. This policy disables it so we don't rely on it by
|
||||
accident.
|
||||
"""
|
||||
|
||||
def get_event_loop(self) -> asyncio.AbstractEventLoop: # nocoverage
|
||||
return asyncio.get_running_loop()
|
||||
Reference in New Issue
Block a user