From 399c59d7bd5caeacfd98338d69400f83f15987db Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 9 Jan 2015 01:32:02 +0100 Subject: [PATCH] asyncio doc: list limitations to run subprocesses from different threads --- Doc/library/asyncio-dev.rst | 5 +++++ Doc/library/asyncio-subprocess.rst | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/Doc/library/asyncio-dev.rst b/Doc/library/asyncio-dev.rst index 63af06a9515..7083e60061c 100644 --- a/Doc/library/asyncio-dev.rst +++ b/Doc/library/asyncio-dev.rst @@ -74,6 +74,11 @@ the event loop. The :ref:`Synchronization primitives ` section describes ways to synchronize tasks. + The :ref:`Subprocess and threads ` section lists + asyncio limitations to run subprocesses from different threads. + + + .. _asyncio-handle-blocking: diff --git a/Doc/library/asyncio-subprocess.rst b/Doc/library/asyncio-subprocess.rst index 1cbfcf21a7f..570107e3e4c 100644 --- a/Doc/library/asyncio-subprocess.rst +++ b/Doc/library/asyncio-subprocess.rst @@ -297,6 +297,25 @@ Process ``N`` (Unix only). +.. _asyncio-subprocess-threads: + +Subprocess and threads +====================== + +asyncio supports running subprocesses from different threads, but there +are limits: + +* An event loop must run in the main thread +* The child watcher must be instantiated in the main thread, before executing + subprocesses from other threads. Call the :func:`get_child_watcher` + function in the main thread to instantiate the child watcher. + +.. seealso:: + + The :ref:`Concurrency and multithreading in asyncio + ` section. + + Subprocess examples ===================