mirror of
https://github.com/ppy/osu.git
synced 2025-01-14 00:42:55 +08:00
Merge pull request #21287 from peppy/fix-null-ref-persistent-endpoint-connector
Fix potential incorrect connection state resulting in null reference
This commit is contained in:
commit
7e9d2ecaf5
@ -145,7 +145,9 @@ namespace osu.Game.Online
|
||||
|
||||
private async Task onConnectionClosed(Exception? ex, CancellationToken cancellationToken)
|
||||
{
|
||||
isConnected.Value = false;
|
||||
bool hasBeenCancelled = cancellationToken.IsCancellationRequested;
|
||||
|
||||
await disconnect(true);
|
||||
|
||||
if (ex != null)
|
||||
await handleErrorAndDelay(ex, cancellationToken).ConfigureAwait(false);
|
||||
@ -153,7 +155,7 @@ namespace osu.Game.Online
|
||||
Logger.Log($"{ClientName} disconnected", LoggingTarget.Network);
|
||||
|
||||
// make sure a disconnect wasn't triggered (and this is still the active connection).
|
||||
if (!cancellationToken.IsCancellationRequested)
|
||||
if (!hasBeenCancelled)
|
||||
await Task.Run(connect, default).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@ -174,7 +176,9 @@ namespace osu.Game.Online
|
||||
}
|
||||
finally
|
||||
{
|
||||
isConnected.Value = false;
|
||||
CurrentConnection = null;
|
||||
|
||||
if (takeLock)
|
||||
connectionLock.Release();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user