diff --git a/src/vs/base/common/async.ts b/src/vs/base/common/async.ts index e7099529bf2..9eadde4da9e 100644 --- a/src/vs/base/common/async.ts +++ b/src/vs/base/common/async.ts @@ -529,7 +529,7 @@ export class RunOnceScheduler { * Cancel current scheduled runner (if any). */ public cancel(): void { - if (this.timeoutToken !== -1) { + if (this.isScheduled()) { platform.clearTimeout(this.timeoutToken); this.timeoutToken = -1; } @@ -557,6 +557,13 @@ export class RunOnceScheduler { this.timeoutToken = platform.setTimeout(this.timeoutHandler, this.timeout); } + /** + * Returns true if scheduled. + */ + public isScheduled(): boolean { + return this.timeoutToken !== -1; + } + private onTimeout() { this.timeoutToken = -1; if (this.runner) {