Wait for all notebook models to load before shutting down active sessions during python upgrade (#17766)

* handle undefined model

* wait for kernel to load before restart

* comment

* await editor model resolved

* remove cast
This commit is contained in:
Lucy Zhang
2021-12-03 16:39:07 -08:00
committed by GitHub
parent 8a205965d2
commit 969eb16df7
2 changed files with 7 additions and 0 deletions

View File

@@ -417,6 +417,10 @@ export abstract class NotebookInput extends EditorInput implements INotebookInpu
}
}
get modelResolved(): Promise<void> {
return this._modelResolved.promise;
}
private hookDirtyListener(dirtyEvent: Event<void>, listener: (e: any) => void): void {
let disposable = dirtyEvent(listener);
if (this._dirtyListener) {

View File

@@ -223,6 +223,9 @@ CommandsRegistry.registerCommand({
for (let editor of editors) {
if (editor instanceof NotebookInput) {
// Wait for NotebookInput.resolve() to be called to ensure the _model field in NotebookInput
// is not undefined when trying to get the notebookModel.
await editor.modelResolved;
let model: INotebookModel = editor.notebookModel;
if (model?.providerId === JUPYTER_PROVIDER_ID) {
let jupyterNotebookManager: IExecuteManager = model.executeManagers.find(x => x.providerId === JUPYTER_PROVIDER_ID);