tornado/docs/concurrent.rst

46 lines
1.7 KiB
ReStructuredText
Raw Normal View History

``tornado.concurrent`` --- Work with threads and futures
========================================================
.. automodule:: tornado.concurrent
:members:
.. py:class:: Future
A ``Future`` encapsulates the result of an asynchronous
operation. In synchronous applications ``Futures`` are used
to wait for the result from a thread or process pool; in
Tornado they are normally used with `.IOLoop.add_future` or by
yielding them in a `.gen.coroutine`.
If the `concurrent.futures` package is available,
`tornado.concurrent.Future` is simply an alias for
`concurrent.futures.Future`. Otherwise, we support the same
interface with a few limitations:
* It is an error to call `result` or `exception` before the
``Future`` has completed.
* Cancellation is not supported.
.. py:method:: result()
If the operation succeeded, return its result. If it failed,
re-raise its exception.
.. py:method:: exception()
If the operation raised an exception, return the `Exception`
object. Otherwise returns None.
.. py:method:: add_done_callback(fn)
Attaches the given callback to the `Future`. It will be invoked
with the `Future` as its argument when it has finished running
and its result is available. In Tornado consider using
`.IOLoop.add_future` instead of calling `add_done_callback`
directly.
.. py:method:: done()
Returns True if the future has finished running and its
`result` and `exception` methods are available.