From 6f6b72e7aa4d1774b1e0c142cc99c01647d38dc4 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Fri, 5 May 2023 16:17:25 +0200 Subject: [PATCH] Move Creation of Caches to constructor thread. --- Penumbra/Collections/Cache/CollectionCacheManager.cs | 4 +--- Penumbra/Penumbra.cs | 5 +++-- .../ResourceWatcher/{ResourceWatcher.Record.cs => Record.cs} | 0 .../{ResourceWatcher.Table.cs => ResourceWatcherTable.cs} | 0 4 files changed, 4 insertions(+), 5 deletions(-) rename Penumbra/UI/ResourceWatcher/{ResourceWatcher.Record.cs => Record.cs} (100%) rename Penumbra/UI/ResourceWatcher/{ResourceWatcher.Table.cs => ResourceWatcherTable.cs} (100%) diff --git a/Penumbra/Collections/Cache/CollectionCacheManager.cs b/Penumbra/Collections/Cache/CollectionCacheManager.cs index e415dc62..7850cdce 100644 --- a/Penumbra/Collections/Cache/CollectionCacheManager.cs +++ b/Penumbra/Collections/Cache/CollectionCacheManager.cs @@ -57,8 +57,6 @@ public class CollectionCacheManager : IDisposable if (!MetaFileManager.CharacterUtility.Ready) MetaFileManager.CharacterUtility.LoadingFinished += IncrementCounters; - - CreateNecessaryCaches(); } public void Dispose() @@ -305,7 +303,7 @@ public class CollectionCacheManager : IDisposable /// Cache handling. Usually recreate caches on the next framework tick, /// but at launch create all of them at once. /// - private void CreateNecessaryCaches() + public void CreateNecessaryCaches() { var tasks = _active.SpecialAssignments.Select(p => p.Value) .Concat(_active.Individuals.Select(p => p.Collection)) diff --git a/Penumbra/Penumbra.cs b/Penumbra/Penumbra.cs index ffd32df8..c70d688a 100644 --- a/Penumbra/Penumbra.cs +++ b/Penumbra/Penumbra.cs @@ -49,7 +49,7 @@ public class Penumbra : IDalamudPlugin public Penumbra(DalamudPluginInterface pluginInterface) { try - { + { var startTimer = new StartTracker(); using var timer = startTimer.Measure(StartTimeType.Total); _services = ServiceManager.CreateProvider(this, pluginInterface, Log, startTimer); @@ -67,7 +67,8 @@ public class Penumbra : IDalamudPlugin _redrawService = _services.GetRequiredService(); _communicatorService = _services.GetRequiredService(); _services.GetRequiredService(); // Initialize because not required anywhere else. - _services.GetRequiredService(); // Initialize because not required anywhere else. + _services.GetRequiredService(); // Initialize because not required anywhere else. + _collectionManager.Caches.CreateNecessaryCaches(); using (var t = _services.GetRequiredService().Measure(StartTimeType.PathResolver)) { _services.GetRequiredService(); diff --git a/Penumbra/UI/ResourceWatcher/ResourceWatcher.Record.cs b/Penumbra/UI/ResourceWatcher/Record.cs similarity index 100% rename from Penumbra/UI/ResourceWatcher/ResourceWatcher.Record.cs rename to Penumbra/UI/ResourceWatcher/Record.cs diff --git a/Penumbra/UI/ResourceWatcher/ResourceWatcher.Table.cs b/Penumbra/UI/ResourceWatcher/ResourceWatcherTable.cs similarity index 100% rename from Penumbra/UI/ResourceWatcher/ResourceWatcher.Table.cs rename to Penumbra/UI/ResourceWatcher/ResourceWatcherTable.cs