Provide services in the same order in Debug and Release

This commit is contained in:
goaaats 2025-05-01 16:38:57 +02:00
parent 22430ce054
commit 1913a4cd2c

View file

@ -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<T> will call Service<ServiceContainer>.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>(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>(T service) where T : IServiceType => Service<T>.Provide(service);