-
Notifications
You must be signed in to change notification settings - Fork 300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interactive Window creation and restore #10808
Comments
We might want to consider the following scenario as well:
In both cases, we could end up in a situation where kernel A is first selected, then our code runs and we change/update the preferred controller & things might not work as expected. Basically i'm highlighting the fact that there are still places where we could have race conditions and I'd prefer to avoid all of them completely this way, we don't run into any unknown or difficult to diagnose user bugs or failures on CI ... |
@rebornix Should we have a meeting about this? |
@rchiodo yes let's arrange one for this. |
Follow up item of #10785 (comment)
Currently the interactive window is created in an asynchronous fashion (due to the async kernel detection), there is a chance of race condition (
InteractiveWindowProvider._windows
still empty when multiple clicks happen on Run Cell code lens). Supporting hot exit for Interactive Window also makes the workflow more complex as the hot exit / window restore happens synchronous at extension activation, before we have all notebook controllers ready.A proposal coming from discussions in #10785 (comment) is
InteractiveWindow
immediately withowner
andmode
, push it to_windows
in both cases (create or restore)start
method to get theInteractiveWindow
prepared for cell execution, which includespreferredController
interactive.open
to create the IW editor in VS CodeInteractiveTab
openNotebookDocument
API, in the future we would have Tab API to archive this)preferredController
and set it as the active controller (maybe we don't need this as the notebook controller provider already tells VS Code which controller to use)The text was updated successfully, but these errors were encountered: