From c1ad5194b5b70ed42ce2a41f7a82bb3045703cb7 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 c215361..b227a12 100644 --- a/MareSynchronos/PlayerData/Pairs/Pair.cs +++ b/MareSynchronos/PlayerData/Pairs/Pair.cs @@ -192,11 +192,12 @@ public class Pair return UserPair != null || GroupPair.Any(); } - public void MarkOffline() + public void MarkOffline(bool wait = true) { try { - _creationSemaphore.Wait(); + if (wait) + _creationSemaphore.Wait(); _onlineUserIdentDto = null; LastReceivedCharacterData = null; var player = CachedPlayer; @@ -205,7 +206,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 5f717d8..1818d7a 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();