remove waiting semaphore for marking offline when disposing

This commit is contained in:
Stanley Dimant
2025-01-15 09:26:52 +01:00
parent 860e074d53
commit d732e0439f
2 changed files with 6 additions and 4 deletions

View File

@@ -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();
}
}

View File

@@ -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();