@@ -448,13 +448,13 @@ export class DebugSession implements IDebugSession {
448448 return this . raw . custom ( request , args ) ;
449449 }
450450
451- stackTrace ( threadId : number , startFrame : number , levels : number ) : Promise < DebugProtocol . StackTraceResponse > {
451+ stackTrace ( threadId : number , startFrame : number , levels : number , token : CancellationToken ) : Promise < DebugProtocol . StackTraceResponse > {
452452 if ( ! this . raw ) {
453453 throw new Error ( localize ( 'noDebugAdapter' , "No debug adapter, can not send '{0}'" , 'stackTrace' ) ) ;
454454 }
455455
456- const token = this . getNewCancellationToken ( threadId ) ;
457- return this . raw . stackTrace ( { threadId, startFrame, levels } , token ) ;
456+ const sessionToken = this . getNewCancellationToken ( threadId , token ) ;
457+ return this . raw . stackTrace ( { threadId, startFrame, levels } , sessionToken ) ;
458458 }
459459
460460 async exceptionInfo ( threadId : number ) : Promise < IExceptionInfo | undefined > {
@@ -628,17 +628,18 @@ export class DebugSession implements IDebugSession {
628628 }
629629 }
630630
631- async completions ( frameId : number | undefined , text : string , position : Position , overwriteBefore : number , token : CancellationToken ) : Promise < DebugProtocol . CompletionsResponse > {
631+ async completions ( frameId : number | undefined , threadId : number , text : string , position : Position , overwriteBefore : number , token : CancellationToken ) : Promise < DebugProtocol . CompletionsResponse > {
632632 if ( ! this . raw ) {
633633 return Promise . reject ( new Error ( localize ( 'noDebugAdapter' , "No debug adapter, can not send '{0}'" , 'completions' ) ) ) ;
634634 }
635+ const sessionCancelationToken = this . getNewCancellationToken ( threadId , token ) ;
635636
636637 return this . raw . completions ( {
637638 frameId,
638639 text,
639640 column : position . column ,
640641 line : position . lineNumber ,
641- } , token ) ;
642+ } , sessionCancelationToken ) ;
642643 }
643644
644645 async stepInTargets ( frameId : number ) : Promise < { id : number , label : string } [ ] > {
@@ -1053,8 +1054,8 @@ export class DebugSession implements IDebugSession {
10531054 }
10541055 }
10551056
1056- private getNewCancellationToken ( threadId : number ) : CancellationToken {
1057- const tokenSource = new CancellationTokenSource ( ) ;
1057+ private getNewCancellationToken ( threadId : number , token ?: CancellationToken ) : CancellationToken {
1058+ const tokenSource = new CancellationTokenSource ( token ) ;
10581059 const tokens = this . cancellationMap . get ( threadId ) || [ ] ;
10591060 tokens . push ( tokenSource ) ;
10601061 this . cancellationMap . set ( threadId , tokens ) ;
0 commit comments