Skip to content

Commit

Permalink
[3.7] Reduce sleep time on Windows (#5098) (#5100)
Browse files Browse the repository at this point in the history
Backports the following commits to 3.7:
 - Reduce sleep time on Windows (#5098)

Co-authored-by: Andrew Svetlov <[email protected]>
  • Loading branch information
aio-libs-github-bot[bot] and asvetlov authored Oct 21, 2020
1 parent 74d3729 commit f10987a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGES/5098.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Make `web.run_app()` more responsive to Ctrl+C on Windows for Python < 3.8. It slightly
increases CPU load as a side effect.
11 changes: 10 additions & 1 deletion aiohttp/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,8 +372,17 @@ async def _run_app(app: Union[Application, Awaitable[Application]], *,
names = sorted(str(s.name) for s in runner.sites)
print("======== Running on {} ========\n"
"(Press CTRL+C to quit)".format(', '.join(names)))

# sleep forever by 1 hour intervals,
# on Windows before Python 3.8 wake up every 1 second to handle
# Ctrl+C smoothly
if sys.platform == "win32" and sys.version_info < 3.8:
delay = 1
else:
delay = 3600

while True:
await asyncio.sleep(3600) # sleep forever by 1 hour intervals
await asyncio.sleep(delay)
finally:
await runner.cleanup()

Expand Down

0 comments on commit f10987a

Please sign in to comment.