summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio/coroutines.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-02 22:59:00 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-07-02 22:59:00 (GMT)
commit2dba23af7145f3edc608dc16209e6ead38c0f6c8 (patch)
tree0eec0e78f459221e1c2d269351d7b9e4aa5755ff /Lib/asyncio/coroutines.py
parente10920f0d1009ea33ce4b35b015a928b33a80867 (diff)
downloadcpython-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.py14
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):