From eae031ae5acf948fbc303eb589b469953179f2ed Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 18 Mar 2024 20:55:18 +0100 Subject: refactor: use Channels as queueing mechanism for periodic websocket messages (#11092) --- .../WebSocketListeners/ActivityLogWebSocketListener.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs') diff --git a/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs b/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs index ba228cb002..99516e9384 100644 --- a/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs +++ b/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs @@ -20,6 +20,8 @@ public class ActivityLogWebSocketListener : BasePeriodicWebSocketListener private readonly IActivityManager _activityManager; + private bool _disposed; + /// /// Initializes a new instance of the class. /// @@ -51,14 +53,15 @@ public class ActivityLogWebSocketListener : BasePeriodicWebSocketListener - protected override void Dispose(bool dispose) + protected override async ValueTask DisposeAsyncCore() { - if (dispose) + if (!_disposed) { _activityManager.EntryCreated -= OnEntryCreated; + _disposed = true; } - base.Dispose(dispose); + await base.DisposeAsyncCore().ConfigureAwait(false); } /// @@ -75,8 +78,8 @@ public class ActivityLogWebSocketListener : BasePeriodicWebSocketListener e) + private void OnEntryCreated(object? sender, GenericEventArgs e) { - await SendData(true).ConfigureAwait(false); + SendData(true); } } -- cgit v1.2.3