It's possible, but AFAIK asyncio.sleep() has nothing in common with time.sleep() -- it's implemented as a timeout on select() or on the IOCP loop. (I also have no access to Windows ATM.)
On Sat, Jul 4, 2015 at 7:49 PM, R. David Murray <rdmur...@bitdance.com> wrote: > Once long ago in Internet time (issue 581232) time.sleep on windows was > not interruptible and this was fixed. Is it possible the work on EINTR > has broken that fix? > > (I don't currently have 3.5 installed on windows to test that theory...) > > On Sat, 04 Jul 2015 17:46:34 +0200, Guido van Rossum <gu...@python.org> > wrote: > > I think this may be more of a Windows issue than an asyncio issue. I > agree > > that ideally ^C should take effect immediately (as it does on UNIX). > > > > On Sat, Jul 4, 2015 at 9:54 AM, Terry Reedy <tjre...@udel.edu> wrote: > > > > > Should the loop.run... methods of asyncio respect KeyboardInterrupt > (^C)? > > > > > > Developer and user convenience and this paragraph in PEP > > > > > > "However, exceptions deriving only from BaseException are typically not > > > caught, and will usually cause the program to terminate with a > traceback. > > > In some cases they are caught and re-raised. (Examples of this category > > > include KeyboardInterrupt and SystemExit ; it is usually unwise to > treat > > > these the same as most other exceptions.) " > > > > > > and this examples in the doc (two places) > > > > > > TCP echo server > > > # Serve requests until CTRL+c is pressed > > > print('Serving on {}'.format(server.sockets[0].getsockname())) > > > try: > > > loop.run_forever() > > > except KeyboardInterrupt: > > > pass > > > > > > suggest yes. On the other hand, the section on > > > "Set signal handlers for SIGINT and SIGTERM" > > > suggests not, unless an explicit handler is registered and then only on > > > Unix. > > > > > > In any case, Adam Bartos, python-list, "An asyncio example", today > asks. > > > ''' > > > This is a minimal example: > > > > > > import asyncio > > > > > > async def wait(): > > > await asyncio.sleep(5) > > > > > > loop = asyncio.get_event_loop() > > > loop.run_until_complete(wait()) > > > > > > Ctrl-C doesn't interrupt the waiting, instead KeyboardInterrupt occurs > > > after those five seconds. It's 3.5.0b2 on Windows. Is it a bug? > > > ''' > > > > > > Using run_forever instead, I found no way to stop other than killing > the > > > process (Idle or Command Prompt). > > > > > > -- > > > Terry Jan Reedy > > > > > > _______________________________________________ > > > Python-Dev mailing list > > > Python-Dev@python.org > > > https://mail.python.org/mailman/listinfo/python-dev > > > Unsubscribe: > > > https://mail.python.org/mailman/options/python-dev/guido%40python.org > > > > > > > > > > > -- > > --Guido van Rossum (python.org/~guido) > > _______________________________________________ > > Python-Dev mailing list > > Python-Dev@python.org > > https://mail.python.org/mailman/listinfo/python-dev > > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/rdmurray%40bitdance.com > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/guido%40python.org > -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com