Skip to content

Commit baea24b

Browse files
authored
update inProgressTasks in executeTask (microsoft#169044)
1 parent 7dcd27a commit baea24b

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,11 +1205,6 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
12051205
if (!task) {
12061206
throw new TaskError(Severity.Info, nls.localize('TaskServer.noTask', 'Task to execute is undefined'), TaskErrors.TaskNotFound);
12071207
}
1208-
if (this._inProgressTasks.has(task._label)) {
1209-
this._logService.info('Prevented duplicate task from running', task._label);
1210-
return;
1211-
}
1212-
this._inProgressTasks.add(task._label);
12131208
const resolver = this._createResolver();
12141209
let executeTaskResult: ITaskSummary | undefined;
12151210
try {
@@ -1225,8 +1220,6 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
12251220
} catch (error) {
12261221
this._handleError(error);
12271222
return Promise.reject(error);
1228-
} finally {
1229-
this._inProgressTasks.delete(task._label);
12301223
}
12311224
}
12321225

@@ -1837,7 +1830,12 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
18371830
}
18381831

18391832
private async _executeTask(task: Task, resolver: ITaskResolver, runSource: TaskRunSource): Promise<ITaskSummary> {
1833+
if (this._inProgressTasks.has(task._label)) {
1834+
this._logService.info('Prevented duplicate task from running', task._label);
1835+
return { exitCode: 0 };
1836+
}
18401837
let taskToRun: Task = task;
1838+
this._inProgressTasks.add(task._label);
18411839
if (await this._saveBeforeRun()) {
18421840
await this._configurationService.reloadConfiguration();
18431841
await this._updateWorkspaceTasks();
@@ -1852,8 +1850,10 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
18521850
await ProblemMatcherRegistry.onReady();
18531851
const executeResult = runSource === TaskRunSource.Reconnect ? this._getTaskSystem().reconnect(taskToRun, resolver) : this._getTaskSystem().run(taskToRun, resolver);
18541852
if (executeResult) {
1853+
this._inProgressTasks.delete(task._label);
18551854
return this._handleExecuteResult(executeResult, runSource);
18561855
}
1856+
this._inProgressTasks.delete(task._label);
18571857
return { exitCode: 0 };
18581858
}
18591859

0 commit comments

Comments
 (0)