diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-07-02 22:59:00 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-07-02 22:59:00 (GMT) |
commit | 2dba23af7145f3edc608dc16209e6ead38c0f6c8 (patch) | |
tree | 0eec0e78f459221e1c2d269351d7b9e4aa5755ff /Lib/asyncio/coroutines.py | |
parent | e10920f0d1009ea33ce4b35b015a928b33a80867 (diff) | |
download | cpython-2dba23af7145f3edc608dc16209e6ead38c0f6c8.zip cpython-2dba23af7145f3edc608dc16209e6ead38c0f6c8.tar.gz cpython-2dba23af7145f3edc608dc16209e6ead38c0f6c8.tar.bz2 |
asyncio: sync with Tulip
* _UnixSubprocessTransport: fix file mode of stdin. Open stdin in write mode,
not in read mode
* Examples: close the event loop at exit
* More reliable CoroWrapper.__del__. If the constructor is interrupted by
KeyboardInterrupt or the coroutine objet is destroyed lately, some the
_source_traceback attribute doesn't exist anymore.
* repr(Task): include also the future the task is waiting for
Diffstat (limited to 'Lib/asyncio/coroutines.py')
-rw-r--r-- | Lib/asyncio/coroutines.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/Lib/asyncio/coroutines.py b/Lib/asyncio/coroutines.py index cdb1ea8..71a1ec4 100644 --- a/Lib/asyncio/coroutines.py +++ b/Lib/asyncio/coroutines.py @@ -111,12 +111,14 @@ class CoroWrapper: frame = getattr(gen, 'gi_frame', None) if frame is not None and frame.f_lasti == -1: func = events._format_callback(self.func, ()) - tb = ''.join(traceback.format_list(self._source_traceback)) - message = ('Coroutine %s was never yielded from\n' - 'Coroutine object created at (most recent call last):\n' - '%s' - % (func, tb.rstrip())) - logger.error(message) + msg = 'Coroutine %s was never yielded from' % func + tb = getattr(self, '_source_traceback', ()) + if tb: + tb = ''.join(traceback.format_list(tb)) + msg += ('\nCoroutine object created at ' + '(most recent call last):\n') + msg += tb.rstrip() + logger.error(msg) def coroutine(func): |