From ecc487a0dc7c51e4b4297c4b09726116ea866220 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 31 Jan 2020 10:32:08 +0100 Subject: [PATCH] Use setTimeout instead of recursive calls in service() --- lib/OutgoingFrameStream.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/OutgoingFrameStream.js b/lib/OutgoingFrameStream.js index 3e7a774..8c862b3 100644 --- a/lib/OutgoingFrameStream.js +++ b/lib/OutgoingFrameStream.js @@ -202,7 +202,7 @@ function service(stream) { if (stream._destinationFinished) { const error = new Error('cannot send frame on closed stream'); stream._frame.emit('error', error); - dequeue(stream); + setTimeout(dequeue.bind(this, stream), 0); return; } @@ -226,12 +226,12 @@ function service(stream) { if (!error) { // Attempt next write operation - service(stream); + setTimeout(service.bind(this, stream), 0); } else { // Send errors to subsequent write cbs and let the next // frame attempt to write and cause an error - dequeue(stream); + setTimeout(dequeue.bind(this, stream), 0); } }