Merge pull request #37

* chore: use threads for DB reading and writing
This commit is contained in:
Dean Sheather
2024-05-02 05:42:50 -07:00
committed by GitHub
parent 0a6c611e73
commit 477290ce7e
9 changed files with 138 additions and 60 deletions
+3 -5
View File
@@ -145,13 +145,12 @@ public sealed class ChatLogWindow : Window
private void Logout()
{
foreach (var tab in Plugin.Config.Tabs)
tab.Clear();
Plugin.MessageManager.ClearAllTabs();
}
private void Login()
{
Plugin.MessageManager.FilterAllTabs(false);
Plugin.MessageManager.FilterAllTabsAsync(false);
}
private void Activated(ChatActivatedArgs args)
@@ -229,8 +228,7 @@ public sealed class ChatLogWindow : Window
switch (arguments)
{
case "all":
foreach (var tab in Plugin.Config.Tabs)
tab.Clear();
Plugin.MessageManager.ClearAllTabs();
break;
case "help":
Plugin.ChatGui.Print("- /clearlog2: clears the active tab's log");
+1 -1
View File
@@ -35,7 +35,7 @@ internal class LegacyMessageImporterWindow : Window
public void Dispose()
{
Importer?.Dispose();
Importer?.DisposeAsync().AsTask().Wait();
}
private void NotificationClicked(INotificationClickArgs args)
+2 -1
View File
@@ -158,7 +158,8 @@ public sealed class SettingsWindow : Window
// save after 60 frames have passed, which should hopefully not
// commit any changes that cause a crash
Plugin.DeferredSaveFrames = 60;
Plugin.MessageManager.FilterAllTabs(false);
Plugin.MessageManager.ClearAllTabs();
Plugin.MessageManager.FilterAllTabsAsync(false);
if (fontChanged || fontSizeChanged)
Plugin.FontManager.BuildFonts();
+5 -9
View File
@@ -133,8 +133,7 @@ internal sealed class Database : ISettingsTab
{
Plugin.Log.Warning("Clearing messages from database");
Plugin.MessageManager.Store.ClearMessages();
foreach (var tab in Plugin.Config.Tabs)
tab.Clear();
Plugin.MessageManager.ClearAllTabs();
// Refresh on next draw
DatabaseLastRefreshTicks = 0;
@@ -156,10 +155,8 @@ internal sealed class Database : ISettingsTab
if (ImGuiUtil.CtrlShiftButton("Reload messages from database", "Ctrl+Shift: MessageManager.FilterAllTabs(false)"))
{
foreach (var tab in Plugin.Config.Tabs)
tab.Clear();
Plugin.MessageManager.FilterAllTabs(false);
Plugin.MessageManager.ClearAllTabs();
Plugin.MessageManager.FilterAllTabsAsync(false);
}
if (ImGuiUtil.CtrlShiftButton("Inject 10,000 messages", "Ctrl+Shift: creates 10,000 unique messages (async)"))
@@ -226,9 +223,7 @@ internal sealed class Database : ISettingsTab
Plugin.Framework.Run(() =>
{
stopwatch = Stopwatch.StartNew();
foreach (var tab in Plugin.Config.Tabs)
tab.Clear();
Plugin.MessageManager.ClearAllTabs();
elapsedTicks = stopwatch.ElapsedTicks;
stopwatch.Stop();
Plugin.Log.Info($"Cleared {Plugin.Config.Tabs.Count} tabs in {elapsedTicks} ticks ({elapsedTicks / TimeSpan.TicksPerMillisecond}ms)");
@@ -238,6 +233,7 @@ internal sealed class Database : ISettingsTab
Plugin.Framework.Run(() =>
{
stopwatch = Stopwatch.StartNew();
// Intentionally synchronous
Plugin.MessageManager.FilterAllTabs(false);
elapsedTicks = stopwatch.ElapsedTicks;
stopwatch.Stop();