[3.6] bpo-31970: Reduce performance overhead of asyncio debug mode. (GH-4314) (#4322)

* bpo-31970: Reduce performance overhead of asyncio debug mode..
(cherry picked from commit 921e9432a1)
This commit is contained in:
Antoine Pitrou 2017-11-07 17:50:48 +01:00 committed by GitHub
parent 518c6b9786
commit d8d218ffda
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 38 additions and 7 deletions

View file

@ -10,6 +10,7 @@ import traceback
import types
from . import compat
from . import constants
from . import events
from . import base_futures
from .log import logger
@ -91,7 +92,7 @@ class CoroWrapper:
assert inspect.isgenerator(gen) or inspect.iscoroutine(gen), gen
self.gen = gen
self.func = func # Used to unwrap @coroutine decorator
self._source_traceback = traceback.extract_stack(sys._getframe(1))
self._source_traceback = events.extract_stack(sys._getframe(1))
self.__name__ = getattr(gen, '__name__', None)
self.__qualname__ = getattr(gen, '__qualname__', None)
@ -183,8 +184,9 @@ class CoroWrapper:
tb = getattr(self, '_source_traceback', ())
if tb:
tb = ''.join(traceback.format_list(tb))
msg += ('\nCoroutine object created at '
'(most recent call last):\n')
msg += (f'\nCoroutine object created at '
f'(most recent call last, truncated to '
f'{constants.DEBUG_STACK_DEPTH} last lines):\n')
msg += tb.rstrip()
logger.error(msg)