mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
asyncio, Tulip issue #136: Add get/set_debug() methods to BaseEventLoopTests.
Add also a PYTHONASYNCIODEBUG environment variable to debug coroutines since Python startup, to be able to debug coroutines defined directly in the asyncio module.
This commit is contained in:
parent
f4558e8b54
commit
7ef60cd8c2
8 changed files with 83 additions and 5 deletions
|
|
@ -123,6 +123,7 @@ class BaseEventLoop(events.AbstractEventLoop):
|
|||
self._running = False
|
||||
self._clock_resolution = time.get_clock_info('monotonic').resolution
|
||||
self._exception_handler = None
|
||||
self._debug = False
|
||||
|
||||
def _make_socket_transport(self, sock, protocol, waiter=None, *,
|
||||
extra=None, server=None):
|
||||
|
|
@ -795,3 +796,9 @@ class BaseEventLoop(events.AbstractEventLoop):
|
|||
if not handle._cancelled:
|
||||
handle._run()
|
||||
handle = None # Needed to break cycles when an exception occurs.
|
||||
|
||||
def get_debug(self):
|
||||
return self._debug
|
||||
|
||||
def set_debug(self, enabled):
|
||||
self._debug = enabled
|
||||
|
|
|
|||
|
|
@ -345,6 +345,14 @@ class AbstractEventLoop:
|
|||
def call_exception_handler(self, context):
|
||||
raise NotImplementedError
|
||||
|
||||
# Debug flag management.
|
||||
|
||||
def get_debug(self):
|
||||
raise NotImplementedError
|
||||
|
||||
def set_debug(self, enabled):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class AbstractEventLoopPolicy:
|
||||
"""Abstract policy for accessing the event loop."""
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ import concurrent.futures
|
|||
import functools
|
||||
import inspect
|
||||
import linecache
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
import weakref
|
||||
|
||||
|
|
@ -28,7 +30,8 @@ from .log import logger
|
|||
# before you define your coroutines. A downside of using this feature
|
||||
# is that tracebacks show entries for the CoroWrapper.__next__ method
|
||||
# when _DEBUG is true.
|
||||
_DEBUG = False
|
||||
_DEBUG = (not sys.flags.ignore_environment
|
||||
and bool(os.environ.get('PYTHONASYNCIODEBUG')))
|
||||
|
||||
|
||||
class CoroWrapper:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue