-
Notifications
You must be signed in to change notification settings - Fork 603
Closed
Labels
Description
- uvloop version: 0.14.0rc1
- Python version: 3.7.4
- Platform: Manjaro
- Can you reproduce the bug with
PYTHONASYNCIODEBUGin env?: Yes - Does uvloop behave differently from vanilla asyncio? How?: Vanilla loop respects the KeyboardInterrupt while uvloop ignore it.
Here is a code snippet:
import asyncio
from aiohttp import web
import uvloop
async def start(app: web.Application, host: str, port: int) -> web.AppRunner:
"""Start the server"""
runner = web.AppRunner(app)
await runner.setup()
server = web.TCPSite(runner, host, port)
await server.start()
return runner
def main() -> None:
"""Entrypoint"""
host = "0.0.0.0"
port = 8000
app = web.Application()
loop = asyncio.get_event_loop()
runner = loop.run_until_complete(start(app, host, port))
print(f"======== Running on http://{host}:8000 ========\n" "(Press CTRL+C to quit)")
try:
loop.run_forever()
except KeyboardInterrupt:
loop.run_until_complete(runner.cleanup())
if __name__ == "__main__":
uvloop.install()
main()
Execute the file:
python issue.py
Hit Ctrl+C.
The keyboard interrupt will be ignored. If you comment out line 28 uvloop.install() the interrupt is respected. This used to work fine, only noticed that it stopped working today.
Reactions are currently unavailable