Message216060
I don't think that the bug comes from asyncio, but it looks like a bug in the implementation of "yield from" in CPython directly! Try with ceval.patch.
ceval.c has a fast path if the object is a generator. With PYTHONASYNCIODEBUG=1, the object is a CoroWrapper, not a generator. In this case, the slow path is used:
retval = _PyObject_CallMethodId(reciever, &PyId_send, "O", v);
This line comes from the initial commit introducing yield-from:
---
changeset: 74356:d64ac9ab4cd0
user: Nick Coghlan <ncoghlan@gmail.com>
date: Fri Jan 13 21:43:40 2012 +1000
files: Doc/library/dis.rst Doc/library/exceptions.rst Doc/reference/expressions.rst Doc/reference/simple_stmts.rst Doc/whatsnew/3.
description:
Implement PEP 380 - 'yield from' (closes #11682)
---
(The exact line changed and the line was moved, but "O" format didn't change.)
Still no unit test, I'm too tired to write one, and I'm not sure that it's a bug in ceval.c. |
|
Date |
User |
Action |
Args |
2014-04-14 03:00:25 | vstinner | set | recipients:
+ vstinner, gvanrossum, ncoghlan, pitrou, giampaolo.rodola, yselivanov, richard.kiss |
2014-04-14 03:00:25 | vstinner | set | messageid: <1397444425.4.0.693772150108.issue21209@psf.upfronthosting.co.za> |
2014-04-14 03:00:25 | vstinner | link | issue21209 messages |
2014-04-14 03:00:24 | vstinner | create | |
|