From: Victor Stinner Date: Tue, 4 Feb 2014 17:18:27 +0000 (+0100) Subject: asyncio doc: add an example to schedule a coroutine from a different thread X-Git-Tag: v3.4.0rc1~89 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5cb84ed5b19206671205b16be0f0dc2480ffed40;p=thirdparty%2FPython%2Fcpython.git asyncio doc: add an example to schedule a coroutine from a different thread --- diff --git a/Doc/library/asyncio-dev.rst b/Doc/library/asyncio-dev.rst index 481910843b23..1e82474194c6 100644 --- a/Doc/library/asyncio-dev.rst +++ b/Doc/library/asyncio-dev.rst @@ -13,12 +13,15 @@ Concurrency and multithreading ------------------------------ An event loop runs in a thread and executes all callbacks and tasks in the same -thread. If a callback should be scheduled from a different thread, the -:meth:`BaseEventLoop.call_soon_threadsafe` method should be used. +thread. While a task in running in the event loop, no other task is running in +the same thread. But when the task uses ``yield from``, the task is suspended +and the event loop executes the next task. -While a task in running in the event loop, no other task is running in the same -thread. But when the task uses ``yield from``, the task is suspended and the -event loop executes the next task. +To schedule a callback from a different thread, the +:meth:`BaseEventLoop.call_soon_threadsafe` method should be used. Example to +schedule a coroutine from a different:: + + loop.call_soon_threadsafe(asyncio.async, coro_func()) To handle signals and to execute subprocesses, the event loop must be run in the main thread.