On Sunday, June 11, 2017 at 2:42:41 AM UTC-7, Lawrence D’Oliveiro wrote: > I tried the following very simple script under both versions 3.5.3 and 3.6.1 > of Python: > > import sys > import asyncio > > loop = asyncio.get_event_loop() > > async def idle() : > while True : > await asyncio.sleep(1) > #end while > #end idle > > loop.create_task(idle()) > loop.run_forever() > > After it starts running, I hit CTRL/C. Under both versions, I get the usual > KeyboardInterrupt exception and traceback. However, under 3.5, I also get > this: > > Task was destroyed but it is pending! > task: <Task pending coro=<idle() running at asyncio_loop_forever:14> > wait_for=<Future pending cb=[Task._wakeup()]>> > > OK, as near as I can tell from the asyncio docs > <https://docs.python.org/3/library/asyncio.html>, it makes sense for this > message to appear. Yet it does not come up with 3.6. Was it deemed to be too > noisy, and too much trouble to silence, so it was quietly dropped? > > Yet according to the 3.6 release notes > <https://docs.python.org/3/whatsnew/3.6.html#asyncio>, the changes to asyncio > have been backported to 3.5. So should there be a difference in behaviour > between the two? > > I’m running Debian Unstable, so feel free to tell me 3.5.3 is obsolete and > there is some later 3.5.x version. ;)
My message in 3.5.3 is somewhat different, running Kubuntu 17.04: >>> import sys >>> import asyncio >>> loop = asyncio.get_event_loop() >>> async def idle(): ... while True: ... await asyncio.sleep(1) ... #end while ... #end idle ... >>> loop.create_task(idle()) <Task pending coro=<idle() running at <stdin>:1>> >>> loop.run_forever() ^CTraceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.5/asyncio/base_events.py", line 421, in run_forever self._run_once() File "/usr/lib/python3.5/asyncio/base_events.py", line 1388, in _run_once event_list = self._selector.select(timeout) File "/usr/lib/python3.5/selectors.py", line 445, in select fd_event_list = self._epoll.poll(timeout, max_ev) KeyboardInterrupt As yu can see, I get the "Task pending coro=<idle()" messsage BEFORE I input the last line of instructions, and it comes from stdin. Different terminals, perhaps? -- https://mail.python.org/mailman/listinfo/python-list