Merge pull request #1362 from PepperDash/feature/add-IHasFeedback-to-IEssentialsRoomFusionController

fix: ensure proper disposal of help request timeout timer and improve…
This commit is contained in:
Neil Dorin
2025-11-26 13:28:55 -05:00
committed by GitHub
2 changed files with 12 additions and 7 deletions

View File

@@ -1846,6 +1846,7 @@ namespace PepperDash.Essentials.Core.Fusion
if (_helpRequestTimeoutTimer != null) if (_helpRequestTimeoutTimer != null)
{ {
_helpRequestTimeoutTimer.Stop(); _helpRequestTimeoutTimer.Stop();
_helpRequestTimeoutTimer.Elapsed -= OnTimedEvent;
_helpRequestTimeoutTimer.Dispose(); _helpRequestTimeoutTimer.Dispose();
_helpRequestTimeoutTimer = null; _helpRequestTimeoutTimer = null;
} }
@@ -1943,13 +1944,8 @@ namespace PepperDash.Essentials.Core.Fusion
private void OnTimedEvent(object source, ElapsedEventArgs e) private void OnTimedEvent(object source, ElapsedEventArgs e)
{ {
this.LogInformation("Help request timeout reached for room '{0}'. Cancelling help request.", this.LogInformation("Help request timeout reached for room '{0}'. Cancelling help request.", Room.Name);
Room.Name);
CancelHelpRequest(); CancelHelpRequest();
_helpRequestTimeoutTimer.Stop();
_helpRequestTimeoutTimer.Dispose();
_helpRequestTimeoutTimer = null;
} }
/// <inheritdoc /> /// <inheritdoc />
@@ -1964,6 +1960,15 @@ namespace PepperDash.Essentials.Core.Fusion
HelpRequestStatusFeedback.FireUpdate(); HelpRequestStatusFeedback.FireUpdate();
Debug.LogMessage(LogEventLevel.Information, this, "Help request cancelled for room '{0}'", Room.Name); 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);
}
} }
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -67,5 +67,5 @@ public class IEssentialsRoomFusionControllerPropertiesConfig
/// Gets or sets the timeout duration for help requests in milliseconds /// Gets or sets the timeout duration for help requests in milliseconds
/// </summary> /// </summary>
[JsonProperty("helpRequestTimeoutMs")] [JsonProperty("helpRequestTimeoutMs")]
public int HelpRequestTimeoutMs{ get; set; } = 30000; public int HelpRequestTimeoutMs { get; set; } = 30000;
} }