From 26e6e0ab72478c614adf3a6cf4fb1efde3f26662 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Mon, 28 Oct 2019 22:03:10 +0100 Subject: [PATCH] Task cancellation fix --- src/mol-plugin/context.ts | 6 +++--- src/mol-plugin/ui/task.tsx | 2 +- src/mol-plugin/util/task-manager.ts | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/mol-plugin/context.ts b/src/mol-plugin/context.ts index d498b387c..9df4fdce2 100644 --- a/src/mol-plugin/context.ts +++ b/src/mol-plugin/context.ts @@ -11,7 +11,7 @@ import { CustomPropertyRegistry } from '../mol-model-props/common/custom-propert import { StructureRepresentationRegistry } from '../mol-repr/structure/registry'; import { VolumeRepresentationRegistry } from '../mol-repr/volume/registry'; import { State, StateTransform, StateTransformer } from '../mol-state'; -import { Task } from '../mol-task'; +import { Task, Progress } from '../mol-task'; import { ColorTheme } from '../mol-theme/color'; import { SizeTheme } from '../mol-theme/size'; import { ThemeRegistryContext } from '../mol-theme/theme'; @@ -176,8 +176,8 @@ export class PluginContext { return this.tasks.run(task); } - requestTaskAbort(task: Task<any> | number, reason?: string) { - this.tasks.requestAbort(task, reason); + requestTaskAbort(progress: Progress, reason?: string) { + this.tasks.requestAbort(progress, reason); } dispose() { diff --git a/src/mol-plugin/ui/task.tsx b/src/mol-plugin/ui/task.tsx index e05171d70..81c73ff9b 100644 --- a/src/mol-plugin/ui/task.tsx +++ b/src/mol-plugin/ui/task.tsx @@ -34,7 +34,7 @@ export class BackgroundTaskProgress extends PluginUIComponent<{ }, { tracked: Or class ProgressEntry extends PluginUIComponent<{ event: TaskManager.ProgressEvent }> { abort = () => { - this.plugin.requestTaskAbort(this.props.event.id, 'User Request'); + this.plugin.requestTaskAbort(this.props.event.progress, 'User Request'); } render() { diff --git a/src/mol-plugin/util/task-manager.ts b/src/mol-plugin/util/task-manager.ts index 6bd257f26..dd8ce979e 100644 --- a/src/mol-plugin/util/task-manager.ts +++ b/src/mol-plugin/util/task-manager.ts @@ -22,7 +22,7 @@ class TaskManager { private track(internalId: number, taskId: number) { return (progress: Progress) => { - if (progress.canAbort && progress.requestAbort && this.abortRequests.has(taskId)) { + if (progress.canAbort && progress.requestAbort && this.abortRequests.has(progress.root.progress.taskId)) { progress.requestAbort(this.abortRequests.get(taskId)); } const elapsed = now() - progress.root.progress.startedTime; @@ -45,8 +45,8 @@ class TaskManager { } } - requestAbort(task: Task<any> | number, reason?: string) { - this.abortRequests.set(typeof task === 'number' ? task : task.id, reason); + requestAbort(progress: Progress, reason?: string) { + this.abortRequests.set(progress.root.progress.taskId, reason); } dispose() { -- GitLab