diff --git a/src/vs/base/common/worker/simpleWorker.ts b/src/vs/base/common/worker/simpleWorker.ts index ec35b90c1d573730ae610c8b5bf53bc281f61963..5b4e516d4c6bc18b1143e0f9e3dd447a6c929b26 100644 --- a/src/vs/base/common/worker/simpleWorker.ts +++ b/src/vs/base/common/worker/simpleWorker.ts @@ -8,6 +8,7 @@ import {transformErrorForSerialization} from 'vs/base/common/errors'; import {Disposable} from 'vs/base/common/lifecycle'; import {ErrorCallback, TPromise, ValueCallback} from 'vs/base/common/winjs.base'; import {IWorker, IWorkerFactory} from './workerClient'; +import {ShallowCancelThenPromise} from 'vs/base/common/async'; const INITIALIZE = '$initialize'; @@ -229,7 +230,8 @@ export class SimpleWorkerClient extends Disposable { } public getProxyObject(): TPromise { - return this._lazyProxy; + // Do not allow chaining promises to cancel the proxy creation + return new ShallowCancelThenPromise(this._lazyProxy); } public getLastRequestTimestamp(): number {