Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Based on discussion in python/cpython#100160, we should not be relying on
asyncio.get_event_loop
, since they are in fact going to make it an alias forasyncio.get_running_loop
.This ensures we install an event loop before launching our apps, so we should not see any more issues like jupyter/notebook#6721.
Additionally, it adds a new class,
JupyterAsyncApp
that runsinitialize_async()
andstart_async()
in an event loop.Based on results in ipython/ipykernel#1184, we'll want to normally use the default event loop on Windows, unless we know we're running a tornado app. This PR adds a
prefer_selector_loop
option toensure_event_loop
so we can override_prefer_selector_loop
injupyter_server
apps to prefer the selector loop.Based on failures seen in #383, we add tests to ensure we are not interfering with existing event loop behavior.