From 1913a4cd2c3568dc5f9b42c38add7047210314a0 Mon Sep 17 00:00:00 2001 From: goaaats Date: Thu, 1 May 2025 16:38:57 +0200 Subject: [PATCH] Provide services in the same order in Debug and Release --- Dalamud/Service/ServiceManager.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Dalamud/Service/ServiceManager.cs b/Dalamud/Service/ServiceManager.cs index 1ae03a80d..92fe5ae41 100644 --- a/Dalamud/Service/ServiceManager.cs +++ b/Dalamud/Service/ServiceManager.cs @@ -136,8 +136,7 @@ internal static class ServiceManager TargetSigScanner scanner, Localization localization) { -#if DEBUG - lock (LoadedServices) + void ProvideAllServices() { // ServiceContainer MUST be first. The static ctor of Service will call Service.Get() // which causes a deadlock otherwise. @@ -150,6 +149,12 @@ internal static class ServiceManager ProvideService(localization); } +#if DEBUG + lock (LoadedServices) + { + ProvideAllServices() + } + return; void ProvideService(T service) where T : IServiceType @@ -159,12 +164,8 @@ internal static class ServiceManager LoadedServices.Add(typeof(T)); } #else - ProvideService(dalamud); - ProvideService(fs); - ProvideService(configuration); - ProvideService(new ServiceContainer()); - ProvideService(scanner); - ProvideService(localization); + + ProvideAllServices(); return; void ProvideService(T service) where T : IServiceType => Service.Provide(service);