[Python-checkins] cpython (3.4): asyncio: add a note about (non) thread safety in each class

victor.stinner python-checkins at python.org
Wed Feb 25 14:26:16 CET 2015


https://hg.python.org/cpython/rev/14e7a28235c6
changeset: 94742:14e7a28235c6
branch: 3.4
user: Victor Stinner <victor.stinner at gmail.com>
date: Wed Feb 25 14:24:15 2015 +0100
summary:
 asyncio: add a note about (non) thread safety in each class
files:
 Doc/library/asyncio-eventloop.rst | 5 +++++
 Doc/library/asyncio-protocol.rst | 2 ++
 Doc/library/asyncio-queue.rst | 2 ++
 Doc/library/asyncio-stream.rst | 4 ++++
 Doc/library/asyncio-subprocess.rst | 5 +++++
 Doc/library/asyncio-task.rst | 4 ++++
 6 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst
--- a/Doc/library/asyncio-eventloop.rst
+++ b/Doc/library/asyncio-eventloop.rst
@@ -22,6 +22,8 @@
 
 Base class of event loops.
 
+ This class is :ref:`not thread safe <asyncio-multithreading>`.
+
 Run an event loop
 -----------------
 
@@ -104,6 +106,9 @@
 
 Like :meth:`call_soon`, but thread safe.
 
+ See the :ref:`concurrency and multithreading <asyncio-multithreading>`
+ section of the documentation.
+
 
 .. _asyncio-delayed-calls:
 
diff --git a/Doc/library/asyncio-protocol.rst b/Doc/library/asyncio-protocol.rst
--- a/Doc/library/asyncio-protocol.rst
+++ b/Doc/library/asyncio-protocol.rst
@@ -23,6 +23,8 @@
 subprocess pipes. The methods available on a transport depend on
 the transport's kind.
 
+The transport classes are :ref:`not thread safe <asyncio-multithreading>`.
+
 
 BaseTransport
 -------------
diff --git a/Doc/library/asyncio-queue.rst b/Doc/library/asyncio-queue.rst
--- a/Doc/library/asyncio-queue.rst
+++ b/Doc/library/asyncio-queue.rst
@@ -31,6 +31,8 @@
 be interrupted between calling :meth:`qsize` and doing an operation on the
 Queue.
 
+ This class is :ref:`not thread safe <asyncio-multithreading>`.
+
 .. versionchanged:: 3.4.3
 New :meth:`join` and :meth:`task_done` methods.
 
diff --git a/Doc/library/asyncio-stream.rst b/Doc/library/asyncio-stream.rst
--- a/Doc/library/asyncio-stream.rst
+++ b/Doc/library/asyncio-stream.rst
@@ -85,6 +85,8 @@
 
 .. class:: StreamReader(limit=None, loop=None)
 
+ This class is :ref:`not thread safe <asyncio-multithreading>`.
+
 .. method:: exception()
 
 Get the exception.
@@ -155,6 +157,8 @@
 wait for flow control. It also adds a transport attribute which references
 the :class:`Transport` directly.
 
+ This class is :ref:`not thread safe <asyncio-multithreading>`.
+
 .. attribute:: transport
 
 Transport.
diff --git a/Doc/library/asyncio-subprocess.rst b/Doc/library/asyncio-subprocess.rst
--- a/Doc/library/asyncio-subprocess.rst
+++ b/Doc/library/asyncio-subprocess.rst
@@ -193,6 +193,9 @@
 :meth:`~subprocess.Popen.wait` method of the :class:`~subprocess.Popen`
 class is implemented as a busy loop.
 
+ This class is :ref:`not thread safe <asyncio-multithreading>`. See also the
+ :ref:`Subprocess and threads <asyncio-subprocess-threads>` section.
+
 .. coroutinemethod:: wait()
 
 Wait for child process to terminate. Set and return :attr:`returncode`
@@ -310,6 +313,8 @@
 subprocesses from other threads. Call the :func:`get_child_watcher`
 function in the main thread to instantiate the child watcher.
 
+The :class:`asyncio.subprocess.Process` class is not thread safe.
+
 .. seealso::
 
 The :ref:`Concurrency and multithreading in asyncio
diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst
--- a/Doc/library/asyncio-task.rst
+++ b/Doc/library/asyncio-task.rst
@@ -209,6 +209,8 @@
 :func:`~concurrent.futures.as_completed` functions in the
 :mod:`concurrent.futures` package.
 
+ This class is :ref:`not thread safe <asyncio-multithreading>`.
+
 .. method:: cancel()
 
 Cancel the future and schedule callbacks.
@@ -375,6 +377,8 @@
 Don't directly create :class:`Task` instances: use the :func:`async`
 function or the :meth:`BaseEventLoop.create_task` method.
 
+ This class is :ref:`not thread safe <asyncio-multithreading>`.
+
 .. classmethod:: all_tasks(loop=None)
 
 Return a set of all tasks for an event loop.
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /