Browse Source

Await `handleRestart`.

Ian Rose 6 years ago
parent
commit
a2b1e26352
1 changed files with 9 additions and 7 deletions
  1. 9 7
      packages/services/src/kernel/default.ts

+ 9 - 7
packages/services/src/kernel/default.ts

@@ -344,8 +344,8 @@ export class DefaultKernel implements Kernel.IKernel {
    * Handle a restart on the kernel.  This is not part of the `IKernel`
    * interface.
    */
-  handleRestart(): void {
-    this._clearState();
+  async handleRestart(): Promise<void> {
+    await this._clearState();
     this._updateStatus('restarting');
     this._clearSocket();
   }
@@ -1532,11 +1532,13 @@ namespace Private {
     // We might want to move the handleRestart to after we get the response back
 
     // Handle the restart on all of the kernels with the same id.
-    each(runningKernels, k => {
-      if (k.id === kernel.id) {
-        k.handleRestart();
-      }
-    });
+    await Promise.all([
+      runningKernels.map(async k => {
+        if (k.id === kernel.id) {
+          await k.handleRestart();
+        }
+      })
+    ]);
     let response = await ServerConnection.makeRequest(url, init, settings);
     if (response.status !== 200) {
       throw new ServerConnection.ResponseError(response);