From 048b2e31b551485597d14860085207c95a4efff8 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Tue, 7 Nov 2017 17:03:28 +0100 Subject: [PATCH] bpo-31960: Fix asyncio.Future documentation for thread (un)safety. (GH-4319) (cherry picked from commit 22b1128559bdeb96907da5840960691bb050d11a) --- Doc/library/asyncio-task.rst | 2 +- Lib/asyncio/futures.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index 5298c11058c4b1..cc8fffb0659f24 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -216,7 +216,7 @@ Future raise an exception when the future isn't done yet. - Callbacks registered with :meth:`add_done_callback` are always called - via the event loop's :meth:`~AbstractEventLoop.call_soon_threadsafe`. + via the event loop's :meth:`~AbstractEventLoop.call_soon`. - This class is not compatible with the :func:`~concurrent.futures.wait` and :func:`~concurrent.futures.as_completed` functions in the diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py index cff9590e4ead5f..511a14b97bce24 100644 --- a/Lib/asyncio/futures.py +++ b/Lib/asyncio/futures.py @@ -112,11 +112,13 @@ class Future: Differences: + - This class is not thread-safe. + - result() and exception() do not take a timeout argument and raise an exception when the future isn't done yet. - Callbacks registered with add_done_callback() are always called - via the event loop's call_soon_threadsafe(). + via the event loop's call_soon(). - This class is not compatible with the wait() and as_completed() methods in the concurrent.futures package.