This commit is contained in:
meganrogge 2024-03-28 09:30:03 -07:00
parent 7df05a7bc1
commit 681256b081
No known key found for this signature in database
GPG key ID: AA74638D4878183D

View file

@ -10,7 +10,7 @@ import { generateUuid } from 'vs/base/common/uuid';
import * as Types from 'vs/base/common/types'; import * as Types from 'vs/base/common/types';
import * as Platform from 'vs/base/common/platform'; import * as Platform from 'vs/base/common/platform';
import { IStringDictionary } from 'vs/base/common/collections'; import { IStringDictionary } from 'vs/base/common/collections';
import { IDisposable } from 'vs/base/common/lifecycle'; import { Disposable, IDisposable } from 'vs/base/common/lifecycle';
import { IWorkspace, IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IWorkspace, IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace';
@ -414,7 +414,7 @@ namespace TaskFilterDTO {
} }
@extHostNamedCustomer(MainContext.MainThreadTask) @extHostNamedCustomer(MainContext.MainThreadTask)
export class MainThreadTask implements MainThreadTaskShape { export class MainThreadTask extends Disposable implements MainThreadTaskShape {
private readonly _extHostContext: IExtHostContext | undefined; private readonly _extHostContext: IExtHostContext | undefined;
private readonly _proxy: ExtHostTaskShape; private readonly _proxy: ExtHostTaskShape;
@ -426,9 +426,10 @@ export class MainThreadTask implements MainThreadTaskShape {
@IWorkspaceContextService private readonly _workspaceContextServer: IWorkspaceContextService, @IWorkspaceContextService private readonly _workspaceContextServer: IWorkspaceContextService,
@IConfigurationResolverService private readonly _configurationResolverService: IConfigurationResolverService @IConfigurationResolverService private readonly _configurationResolverService: IConfigurationResolverService
) { ) {
super();
this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostTask); this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostTask);
this._providers = new Map(); this._providers = new Map();
this._taskService.onDidStateChange(async (event: ITaskEvent) => { this._register(this._taskService.onDidStateChange(async (event: ITaskEvent) => {
if (event.kind === TaskEventKind.Changed) { if (event.kind === TaskEventKind.Changed) {
return; return;
} }
@ -453,14 +454,15 @@ export class MainThreadTask implements MainThreadTaskShape {
} else if (event.kind === TaskEventKind.End) { } else if (event.kind === TaskEventKind.End) {
this._proxy.$OnDidEndTask(TaskExecutionDTO.from(task.getTaskExecution())); this._proxy.$OnDidEndTask(TaskExecutionDTO.from(task.getTaskExecution()));
} }
}); }));
} }
public dispose(): void { public override dispose(): void {
for (const value of this._providers.values()) { for (const value of this._providers.values()) {
value.disposable.dispose(); value.disposable.dispose();
} }
this._providers.clear(); this._providers.clear();
super.dispose();
} }
$createTaskId(taskDTO: ITaskDTO): Promise<string> { $createTaskId(taskDTO: ITaskDTO): Promise<string> {