From 610501ef1998dfec8d97f163e601cb7d98459175 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Wed, 17 Apr 2024 07:49:48 +0200 Subject: [PATCH] Improved console ui disposing --- Moonlight/Features/Servers/Helpers/ServerConsole.cs | 12 +++++++++++- .../Features/Servers/UI/Layouts/UserLayout.razor | 3 +++ .../Features/Servers/UI/UserViews/Console.razor | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Moonlight/Features/Servers/Helpers/ServerConsole.cs b/Moonlight/Features/Servers/Helpers/ServerConsole.cs index 87d92f8..c116526 100644 --- a/Moonlight/Features/Servers/Helpers/ServerConsole.cs +++ b/Moonlight/Features/Servers/Helpers/ServerConsole.cs @@ -6,7 +6,7 @@ using Moonlight.Features.Servers.Models.Enums; namespace Moonlight.Features.Servers.Helpers; -public class ServerConsole +public class ServerConsole : IDisposable { public SmartEventHandler OnStateChange { get; set; } = new(); public SmartEventHandler OnStatsChange { get; set; } = new(); @@ -127,4 +127,14 @@ public class ServerConsole lock (MessageCache) return MessageCache.ToArray(); } + + public async void Dispose() + { + MessageCache.Clear(); + + if (WebSocket.State == WebSocketState.Open) + await WebsocketStream.Close(); + + WebSocket.Dispose(); + } } \ No newline at end of file diff --git a/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor b/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor index 905cfab..014d92a 100644 --- a/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor +++ b/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor @@ -308,7 +308,10 @@ await UpdateTimer.DisposeAsync(); if (Console != null) + { await Console.Close(); + Console.Dispose(); + } } private int GetIndex() diff --git a/Moonlight/Features/Servers/UI/UserViews/Console.razor b/Moonlight/Features/Servers/UI/UserViews/Console.razor index 8197df6..fe50781 100644 --- a/Moonlight/Features/Servers/UI/UserViews/Console.razor +++ b/Moonlight/Features/Servers/UI/UserViews/Console.razor @@ -79,7 +79,7 @@ foreach (var line in ServerConsole.Messages.TakeLast(50)) { var lineModified = line.Replace("\n", "\n\r"); - text += lineModified; + text += lineModified + "\n\r"; } await Terminal.Write(text);