Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
18fedc64
Commit
18fedc64
authored
Jun 23, 2014
by
Victor Stinner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
asyncio: document the debug mode
parent
99253e37
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
7 deletions
+30
-7
Doc/library/asyncio-dev.rst
Doc/library/asyncio-dev.rst
+27
-4
Doc/library/asyncio-eventloop.rst
Doc/library/asyncio-eventloop.rst
+1
-1
Doc/using/cmdline.rst
Doc/using/cmdline.rst
+2
-2
No files found.
Doc/library/asyncio-dev.rst
View file @
18fedc64
...
...
@@ -9,6 +9,29 @@ Asynchronous programming is different than classical "sequential" programming.
This page lists common traps and explains how to avoid them.
.. _asyncio-debug-mode:
Debug mode of asyncio
---------------------
To enable the debug mode globally, set the environment variable
:envvar:`PYTHONASYNCIODEBUG` to ``1``. Examples of effects of the debug mode:
* Log :ref:`coroutines defined but never "yielded from"
<asyncio-coroutine-not-scheduled>`
* :meth:`~BaseEventLoop.call_soon` and :meth:`~BaseEventLoop.call_at` methods
raise an exception if they are called from the wrong thread.
* Log the execution time of the selector
* Log callbacks taking more than 100 ms to be executed. The
:attr:`BaseEventLoop.slow_callback_duration` attribute is the minimum
duration in seconds of "slow" callbacks.
.. seealso::
The :meth:`BaseEventLoop.set_debug` method and the :ref:`asyncio logger
<asyncio-logger>`.
.. _asyncio-multithreading:
Concurrency and multithreading
...
...
@@ -83,10 +106,10 @@ Detect coroutine objects never scheduled
When a coroutine function is called but not passed to :func:`async` or to the
:class:`Task` constructor, it is not scheduled and it is probably a bug.
To detect such bug,
set the environment variable :envvar:`PYTHONASYNCIODEBUG`
to ``1``. When the coroutine object is destroyed by the garbage collector, a
log will be emitted with the traceback where the coroutine function was called.
See the :ref:`asyncio logger <asyncio-logger>`.
To detect such bug,
:ref:`enable the debug mode of asyncio
<asyncio-debug-mode>`. When the coroutine object is destroyed by the garbage
collector, a log will be emitted with the traceback where the coroutine
function was called.
See the :ref:`asyncio logger <asyncio-logger>`.
The debug flag changes the behaviour of the :func:`coroutine` decorator. The
debug flag value is only used when then coroutine function is defined, not when
...
...
Doc/library/asyncio-eventloop.rst
View file @
18fedc64
...
...
@@ -601,7 +601,7 @@ Debug mode
.. seealso::
The :ref:`
Develop with asyncio <asyncio-dev>` section
.
The :ref:`
debug mode of asyncio <asyncio-debug-mode>`
.
Server
...
...
Doc/using/cmdline.rst
View file @
18fedc64
...
...
@@ -616,8 +616,8 @@ conflict.
.. envvar:: PYTHONASYNCIODEBUG
If this environment variable is set to a non-empty string, enable the
debug
mode
of the :mod:`asyncio` module.
If this environment variable is set to a non-empty string, enable the
:ref:`debug mode <asyncio-debug-mode>`
of the :mod:`asyncio` module.
.. versionadded:: 3.4
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment