Selaa lähdekoodia

Merge branch 'master' into develop

Borys Palka 5 vuotta sitten
vanhempi
commit
b01cce0b21
4 muutettua tiedostoa jossa 26 lisäystä ja 3 poistoa
  1. 1 0
      src/debugger.ts
  2. 0 1
      src/index.ts
  3. 13 0
      src/service.ts
  4. 12 2
      src/tokens.ts

+ 1 - 0
src/debugger.ts

@@ -58,6 +58,7 @@ export class Debugger extends SplitPanel {
       return;
     }
     this.model.dispose();
+    this.service.dispose();
     super.dispose();
   }
 

+ 0 - 1
src/index.ts

@@ -469,7 +469,6 @@ const main: JupyterFrontEndPlugin<IDebugger> = {
         }
       }
     );
-
     return proxy;
   }
 };

+ 13 - 0
src/service.ts

@@ -21,6 +21,18 @@ export class DebugService implements IDebugger.IService {
     this._model = debuggerModel;
   }
 
+  dispose(): void {
+    if (this.isDisposed) {
+      return;
+    }
+    this._isDisposed = true;
+    Signal.clearData(this);
+  }
+
+  get isDisposed(): boolean {
+    return this._isDisposed;
+  }
+
   set session(session: IDebugger.ISession) {
     if (this._session === session) {
       return;
@@ -210,6 +222,7 @@ export class DebugService implements IDebugger.IService {
     return 1;
   }
 
+  private _isDisposed: boolean = false;
   private _session: IDebugger.ISession;
   private _sessionChanged = new Signal<IDebugger.IService, IDebugger.ISession>(
     this

+ 12 - 2
src/tokens.ts

@@ -13,7 +13,7 @@ import { Session } from '@jupyterlab/services';
 
 import { Token } from '@phosphor/coreutils';
 
-import { IObservableDisposable } from '@phosphor/disposable';
+import { IDisposable, IObservableDisposable } from '@phosphor/disposable';
 
 import { ISignal } from '@phosphor/signaling';
 
@@ -96,10 +96,13 @@ export namespace IDebugger {
       args: IDebugger.ISession.Request[K]
     ): Promise<IDebugger.ISession.Response[K]>;
 
+    /**
+     * Signal emitted for debug event messages.
+     */
     eventMessage: ISignal<IDebugger.ISession, IDebugger.ISession.Event>;
   }
 
-  export interface IService {
+  export interface IService extends IDisposable {
     /**
      * The API debugger session to connect to a debugger
      */
@@ -140,7 +143,14 @@ export namespace IDebugger {
      */
     launch(code: string): Promise<void>;
 
+    /**
+     * Signal emitted upon session changed.
+     */
     sessionChanged: ISignal<IDebugger.IService, IDebugger.ISession>;
+
+    /**
+     * Signal emitted for debug event messages.
+     */
     eventMessage: ISignal<IDebugger.IService, IDebugger.ISession.Event>;
   }