From 1364b39f65822b01e2d69a0a5b1693edd4e2596b Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Wed, 19 Apr 2023 11:00:53 +0200 Subject: [PATCH] Bugfix for service creation stalling itself. --- Penumbra.GameData/Data/ObjectIdentification.cs | 1 - Penumbra/Services/ServiceWrapper.cs | 13 +++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Penumbra.GameData/Data/ObjectIdentification.cs b/Penumbra.GameData/Data/ObjectIdentification.cs index 53c71730..111a652d 100644 --- a/Penumbra.GameData/Data/ObjectIdentification.cs +++ b/Penumbra.GameData/Data/ObjectIdentification.cs @@ -29,7 +29,6 @@ internal sealed class ObjectIdentification : DataSharer, IObjectIdentifier public readonly IReadOnlyDictionary> Actions; private readonly ActorManager.ActorManagerData _actorData; - private readonly EquipmentIdentificationList _equipment; private readonly WeaponIdentificationList _weapons; private readonly ModelIdentificationList _modelIdentifierToModelChara; diff --git a/Penumbra/Services/ServiceWrapper.cs b/Penumbra/Services/ServiceWrapper.cs index 1adec97f..5da7cd07 100644 --- a/Penumbra/Services/ServiceWrapper.cs +++ b/Penumbra/Services/ServiceWrapper.cs @@ -78,9 +78,14 @@ public abstract class AsyncServiceWrapper : IServiceWrapper { Service = service; Penumbra.Log.Verbose($"[{Name}] Created."); - FinishedCreation?.Invoke(); + _task = null; } }); + _task.ContinueWith((t, x) => + { + if (!_isDisposed) + FinishedCreation?.Invoke(); + }, null); } protected AsyncServiceWrapper(string name, Func factory) @@ -99,9 +104,13 @@ public abstract class AsyncServiceWrapper : IServiceWrapper Service = service; Penumbra.Log.Verbose($"[{Name}] Created."); _task = null; - FinishedCreation?.Invoke(); } }); + _task.ContinueWith((t, x) => + { + if (!_isDisposed) + FinishedCreation?.Invoke(); + }, null); } public void Dispose()