From a715da3d1839ee7d0721af13515581101dae785f Mon Sep 17 00:00:00 2001 From: David Simpson <45690499+davegarthsimpson@users.noreply.github.com> Date: Mon, 20 Jun 2022 09:32:10 +0200 Subject: [PATCH] flush on clear output buffer (#1074) --- arduino-ide-extension/src/node/utils/simple-buffer.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arduino-ide-extension/src/node/utils/simple-buffer.ts b/arduino-ide-extension/src/node/utils/simple-buffer.ts index 3f5acd50..0e0ec38f 100644 --- a/arduino-ide-extension/src/node/utils/simple-buffer.ts +++ b/arduino-ide-extension/src/node/utils/simple-buffer.ts @@ -3,15 +3,20 @@ export class SimpleBuffer { private flushInterval?: NodeJS.Timeout; + private flush: () => void; + constructor(onFlush: (chunk: string) => void, flushTimeout: number) { - this.flushInterval = setInterval(() => { + const flush = () => { if (this.chunks.length > 0) { const chunkString = Buffer.concat(this.chunks).toString(); this.clearChunks(); onFlush(chunkString); } - }, flushTimeout); + }; + + this.flush = flush; + this.flushInterval = setInterval(flush, flushTimeout); } public addChunk(chunk: Uint8Array): void { @@ -23,6 +28,7 @@ export class SimpleBuffer { } public clearFlushInterval(): void { + this.flush(); this.clearChunks(); clearInterval(this.flushInterval);