tornado.platform.asyncio
— Bridge between asyncio
and Tornado¶
Bridges between the asyncio
module and Tornado IOLoop.
New in version 3.2.
This module integrates Tornado with the asyncio
module introduced
in Python 3.4. This makes it possible to combine the two libraries on
the same event loop.
Deprecated since version 5.0: While the code in this module is still used, it is now enabled
automatically when asyncio
is available, so applications should
no longer need to refer to this module directly.
Note
Tornado requires the add_reader
family of
methods, so it is not compatible with the ProactorEventLoop
on
Windows. Use the SelectorEventLoop
instead.
-
class
tornado.platform.asyncio.
AsyncIOMainLoop
[source]¶ AsyncIOMainLoop
creates anIOLoop
that corresponds to the currentasyncio
event loop (i.e. the one returned byasyncio.get_event_loop()
).Deprecated since version 5.0: Now used automatically when appropriate; it is no longer necessary to refer to this class directly.
Changed in version 5.0: Closing an
AsyncIOMainLoop
now closes the underlying asyncio loop.
-
class
tornado.platform.asyncio.
AsyncIOLoop
[source]¶ AsyncIOLoop
is anIOLoop
that runs on anasyncio
event loop. This class follows the usual Tornado semantics for creating newIOLoops
; these loops are not necessarily related to theasyncio
default event loop.Each
AsyncIOLoop
creates a newasyncio.EventLoop
; this object can be accessed with theasyncio_loop
attribute.Changed in version 5.0: When an
AsyncIOLoop
becomes the currentIOLoop
, it also sets the currentasyncio
event loop.Deprecated since version 5.0: Now used automatically when appropriate; it is no longer necessary to refer to this class directly.
-
tornado.platform.asyncio.
to_tornado_future
(asyncio_future: _asyncio.Future) → _asyncio.Future[source]¶ Convert an
asyncio.Future
to atornado.concurrent.Future
.New in version 4.1.
Deprecated since version 5.0: Tornado
Futures
have been merged withasyncio.Future
, so this method is now a no-op.
-
tornado.platform.asyncio.
to_asyncio_future
(tornado_future: _asyncio.Future) → _asyncio.Future[source]¶ Convert a Tornado yieldable object to an
asyncio.Future
.New in version 4.1.
Changed in version 4.3: Now accepts any yieldable object, not just
tornado.concurrent.Future
.Deprecated since version 5.0: Tornado
Futures
have been merged withasyncio.Future
, so this method is now equivalent totornado.gen.convert_yielded
.
-
class
tornado.platform.asyncio.
AnyThreadEventLoopPolicy
[source]¶ Event loop policy that allows loop creation on any thread.
The default
asyncio
event loop policy only automatically creates event loops in the main threads. Other threads must create event loops explicitly orasyncio.get_event_loop
(and thereforeIOLoop.current
) will fail. Installing this policy allows event loops to be created automatically on any thread, matching the behavior of Tornado versions prior to 5.0 (or 5.0 on Python 2).Usage:
asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy())
New in version 5.0.