From 185308c0dd317d73fe4c19dea347582dee9650de Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 26 Aug 2019 11:18:40 +0200 Subject: [PATCH] Fix issue where BufferedEmitter would not deliver buffered events --- src/vs/base/parts/ipc/common/ipc.net.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/vs/base/parts/ipc/common/ipc.net.ts b/src/vs/base/parts/ipc/common/ipc.net.ts index 1e2fdbccec4..71ffef3a0ad 100644 --- a/src/vs/base/parts/ipc/common/ipc.net.ts +++ b/src/vs/base/parts/ipc/common/ipc.net.ts @@ -420,7 +420,7 @@ export class BufferedEmitter { // it is important to deliver these messages after this call, but before // other messages have a chance to be received (to guarantee in order delivery) // that's why we're using here nextTick and not other types of timeouts - process.nextTick(() => this._deliverMessages); + process.nextTick(() => this._deliverMessages()); }, onLastListenerRemove: () => { this._hasListeners = false; @@ -443,7 +443,11 @@ export class BufferedEmitter { public fire(event: T): void { if (this._hasListeners) { - this._emitter.fire(event); + if (this._bufferedMessages.length > 0) { + this._bufferedMessages.push(event); + } else { + this._emitter.fire(event); + } } else { this._bufferedMessages.push(event); }