From 4f5d4ef87a92ef71222679bfc53dc19609a0dd57 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 26 Nov 2025 11:02:31 -0700 Subject: [PATCH 1/4] fix: ensure proper disposal of help request timeout timer and improve logging --- .../Fusion/IEssentialsRoomFusionController.cs | 18 ++++++++++++------ ...ialsRoomFusionControllerPropertiesConfig.cs | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs index c1a16089..79bb7d01 100644 --- a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs +++ b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs @@ -1846,6 +1846,7 @@ namespace PepperDash.Essentials.Core.Fusion if (_helpRequestTimeoutTimer != null) { _helpRequestTimeoutTimer.Stop(); + _helpRequestTimeoutTimer.Elapsed -= OnTimedEvent; _helpRequestTimeoutTimer.Dispose(); _helpRequestTimeoutTimer = null; } @@ -1943,13 +1944,7 @@ namespace PepperDash.Essentials.Core.Fusion private void OnTimedEvent(object source, ElapsedEventArgs e) { - this.LogInformation("Help request timeout reached for room '{0}'. Cancelling help request.", - Room.Name); - CancelHelpRequest(); - _helpRequestTimeoutTimer.Stop(); - _helpRequestTimeoutTimer.Dispose(); - _helpRequestTimeoutTimer = null; } /// @@ -1964,6 +1959,17 @@ namespace PepperDash.Essentials.Core.Fusion HelpRequestStatusFeedback.FireUpdate(); Debug.LogMessage(LogEventLevel.Information, this, "Help request cancelled for room '{0}'", Room.Name); } + + if(_helpRequestTimeoutTimer != null) + { + _helpRequestTimeoutTimer.Stop(); + _helpRequestTimeoutTimer.Elapsed -= OnTimedEvent; + _helpRequestTimeoutTimer.Dispose(); + _helpRequestTimeoutTimer = null; + + this.LogDebug("Help request timeout timer stopped for room '{0}'.", + Room.Name); + } } /// diff --git a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionControllerPropertiesConfig.cs b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionControllerPropertiesConfig.cs index 639963f8..c9dea4c3 100644 --- a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionControllerPropertiesConfig.cs +++ b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionControllerPropertiesConfig.cs @@ -67,5 +67,5 @@ public class IEssentialsRoomFusionControllerPropertiesConfig /// Gets or sets the timeout duration for help requests in milliseconds /// [JsonProperty("helpRequestTimeoutMs")] - public int HelpRequestTimeoutMs{ get; set; } = 30000; + public int HelpRequestTimeoutMs { get; set; } = 30000; } \ No newline at end of file From e93b5b34ccc36f8bebdbd30599b19fe5b873f9e5 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 26 Nov 2025 11:09:02 -0700 Subject: [PATCH 2/4] Update src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Fusion/IEssentialsRoomFusionController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs index 79bb7d01..1211ab07 100644 --- a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs +++ b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs @@ -1960,7 +1960,7 @@ namespace PepperDash.Essentials.Core.Fusion Debug.LogMessage(LogEventLevel.Information, this, "Help request cancelled for room '{0}'", Room.Name); } - if(_helpRequestTimeoutTimer != null) + if (_helpRequestTimeoutTimer != null) { _helpRequestTimeoutTimer.Stop(); _helpRequestTimeoutTimer.Elapsed -= OnTimedEvent; From 06cb508f3a66231f9a80ffd34a7d09ca20fdbbe2 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 26 Nov 2025 11:09:07 -0700 Subject: [PATCH 3/4] Update src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Fusion/IEssentialsRoomFusionController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs index 1211ab07..1d6230f9 100644 --- a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs +++ b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs @@ -1968,7 +1968,7 @@ namespace PepperDash.Essentials.Core.Fusion _helpRequestTimeoutTimer = null; this.LogDebug("Help request timeout timer stopped for room '{0}'.", - Room.Name); + Room.Name); } } From c07e099a792ec7476182d1b3f993bcddd28a7cc8 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 26 Nov 2025 11:10:21 -0700 Subject: [PATCH 4/4] feat: add logging for help request timeout events in IEssentialsRoomFusionController --- .../Fusion/IEssentialsRoomFusionController.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs index 1d6230f9..bcf6509e 100644 --- a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs +++ b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs @@ -1944,6 +1944,7 @@ namespace PepperDash.Essentials.Core.Fusion private void OnTimedEvent(object source, ElapsedEventArgs e) { + this.LogInformation("Help request timeout reached for room '{0}'. Cancelling help request.", Room.Name); CancelHelpRequest(); } @@ -1966,9 +1967,7 @@ namespace PepperDash.Essentials.Core.Fusion _helpRequestTimeoutTimer.Elapsed -= OnTimedEvent; _helpRequestTimeoutTimer.Dispose(); _helpRequestTimeoutTimer = null; - - this.LogDebug("Help request timeout timer stopped for room '{0}'.", - Room.Name); + this.LogDebug("Help request timeout timer stopped for room '{0}'.", Room.Name); } }