From d732e0439fae26a098820b2d4379ff4c050f7b70 Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Wed, 15 Jan 2025 09:26:52 +0100 Subject: [PATCH] remove waiting semaphore for marking offline when disposing --- MareSynchronos/PlayerData/Pairs/Pair.cs | 8 +++++--- MareSynchronos/PlayerData/Pairs/PairManager.cs | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MareSynchronos/PlayerData/Pairs/Pair.cs b/MareSynchronos/PlayerData/Pairs/Pair.cs index 7fb2455..e180401 100644 --- a/MareSynchronos/PlayerData/Pairs/Pair.cs +++ b/MareSynchronos/PlayerData/Pairs/Pair.cs @@ -185,11 +185,12 @@ public class Pair return UserPair.Groups.Any() || UserPair.IndividualPairStatus != IndividualPairStatus.None; } - public void MarkOffline() + public void MarkOffline(bool wait = true) { try { - _creationSemaphore.Wait(); + if (wait) + _creationSemaphore.Wait(); LastReceivedCharacterData = null; var player = CachedPlayer; CachedPlayer = null; @@ -198,7 +199,8 @@ public class Pair } finally { - _creationSemaphore.Release(); + if (wait) + _creationSemaphore.Release(); } } diff --git a/MareSynchronos/PlayerData/Pairs/PairManager.cs b/MareSynchronos/PlayerData/Pairs/PairManager.cs index 2d4ec6d..44c1269 100644 --- a/MareSynchronos/PlayerData/Pairs/PairManager.cs +++ b/MareSynchronos/PlayerData/Pairs/PairManager.cs @@ -356,7 +356,7 @@ public sealed class PairManager : DisposableMediatorSubscriberBase Logger.LogDebug("Disposing all Pairs"); Parallel.ForEach(_allClientPairs, item => { - item.Value.MarkOffline(); + item.Value.MarkOffline(wait: false); }); RecreateLazy();