From ceb1da20a2b31229c6994602713edcee043c6d95 Mon Sep 17 00:00:00 2001 From: David Simpson <45690499+davegarthsimpson@users.noreply.github.com> Date: Sat, 18 Jun 2022 00:19:49 +0200 Subject: [PATCH] flush on clear output buffer --- 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 3f5acd506..0e0ec38f3 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);