From 4d01818b3909c8550b332b999070ce883daf3a5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Baz=20Castillo?= Date: Mon, 20 Nov 2023 11:41:53 +0100 Subject: [PATCH] Fix or improve pause/resume event logic in Consumer and DataConsumer JS classes --- node/src/Consumer.ts | 14 +++++--------- node/src/DataConsumer.ts | 12 ++++-------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/node/src/Consumer.ts b/node/src/Consumer.ts index 096959c74d..e8d9a5981d 100644 --- a/node/src/Consumer.ts +++ b/node/src/Consumer.ts @@ -619,12 +619,12 @@ export class Consumer this.#internal.consumerId ); - const wasPaused = this.#paused || this.#producerPaused; + const wasPaused = this.#paused; this.#paused = true; // Emit observer event. - if (!wasPaused) + if (!wasPaused && !this.#producerPaused) { this.#observer.safeEmit('pause'); } @@ -644,7 +644,7 @@ export class Consumer this.#internal.consumerId ); - const wasPaused = this.#paused || this.#producerPaused; + const wasPaused = this.#paused; this.#paused = false; @@ -853,14 +853,12 @@ export class Consumer break; } - const wasPaused = this.#paused || this.#producerPaused; - this.#producerPaused = true; this.safeEmit('producerpause'); // Emit observer event. - if (!wasPaused) + if (!this.#paused) { this.#observer.safeEmit('pause'); } @@ -875,14 +873,12 @@ export class Consumer break; } - const wasPaused = this.#paused || this.#producerPaused; - this.#producerPaused = false; this.safeEmit('producerresume'); // Emit observer event. - if (wasPaused && !this.#paused) + if (!this.#paused) { this.#observer.safeEmit('resume'); } diff --git a/node/src/DataConsumer.ts b/node/src/DataConsumer.ts index 31b4272a65..12b7e5db68 100644 --- a/node/src/DataConsumer.ts +++ b/node/src/DataConsumer.ts @@ -419,7 +419,7 @@ export class DataConsumer this.#paused = true; // Emit observer event. - if (!wasPaused) + if (!wasPaused && !this.#dataProducerPaused) { this.#observer.safeEmit('pause'); } @@ -444,7 +444,7 @@ export class DataConsumer this.#paused = false; // Emit observer event. - if (wasPaused) + if (wasPaused && !this.#dataProducerPaused) { this.#observer.safeEmit('resume'); } @@ -620,14 +620,12 @@ export class DataConsumer break; } - const wasPaused = this.#paused || this.#dataProducerPaused; - this.#dataProducerPaused = true; this.safeEmit('dataproducerpause'); // Emit observer event. - if (!wasPaused) + if (!this.#paused) { this.#observer.safeEmit('pause'); } @@ -642,14 +640,12 @@ export class DataConsumer break; } - const wasPaused = this.#paused || this.#dataProducerPaused; - this.#dataProducerPaused = false; this.safeEmit('dataproducerresume'); // Emit observer event. - if (wasPaused && !this.#paused) + if (!this.#paused) { this.#observer.safeEmit('resume'); }