fixes for when removing a pair or client

This commit is contained in:
rootdarkarchon
2023-01-29 20:42:54 +01:00
parent d7cad81eb0
commit f68aa94dc3
2 changed files with 20 additions and 4 deletions

View File

@@ -87,7 +87,11 @@ public class PairManager : IDisposable
if (!_allClientPairs[item.Key].HasAnyConnection())
{
_allClientPairs.TryRemove(item.Key, out _);
if (_allClientPairs.TryRemove(item.Key, out var pair))
{
pair.CachedPlayer?.Dispose();
pair.CachedPlayer = null;
}
}
}
RecreateLazy();
@@ -197,6 +201,8 @@ public class PairManager : IDisposable
if (!pair.HasAnyConnection())
{
pair.CachedPlayer?.Dispose();
pair.CachedPlayer = null;
_allClientPairs.TryRemove(dto.User, out _);
}
@@ -211,6 +217,8 @@ public class PairManager : IDisposable
pair.UserPair = null;
if (!pair.HasAnyConnection())
{
pair.CachedPlayer?.Dispose();
pair.CachedPlayer = null;
_allClientPairs.TryRemove(dto.User, out _);
}
else

View File

@@ -219,9 +219,17 @@ public partial class ApiController
Logger.Debug("Sending " + requestMessage.Method + " to " + requestMessage.RequestUri);
}
if (ct != null)
return await _httpClient.SendAsync(requestMessage, ct.Value).ConfigureAwait(false);
return await _httpClient.SendAsync(requestMessage).ConfigureAwait(false);
try
{
if (ct != null)
return await _httpClient.SendAsync(requestMessage, ct.Value).ConfigureAwait(false);
return await _httpClient.SendAsync(requestMessage).ConfigureAwait(false);
}
catch (Exception ex)
{
Logger.Error("Error during SendRequestInternal for " + requestMessage.RequestUri, ex);
throw;
}
}
private async Task<HttpResponseMessage> SendRequestAsync<T>(HttpMethod method, Uri uri, T content, CancellationToken ct) where T : class