1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-13 19:53:23 +08:00

Merge pull request #20788 from frenzibyte/handle-submitting-player-request-timeout

Fix potential exception in `SubmittingPlayer` token retrieval on request timeout
This commit is contained in:
Dean Herbert 2022-10-20 09:51:57 +09:00 committed by GitHub
commit 77b25c4a5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -86,16 +86,13 @@ namespace osu.Game.Screens.Play
// Generally a timeout would not happen here as APIAccess will timeout first. // Generally a timeout would not happen here as APIAccess will timeout first.
if (!tcs.Task.Wait(60000)) if (!tcs.Task.Wait(60000))
handleTokenFailure(new InvalidOperationException("Token retrieval timed out (request never run)")); req.TriggerFailure(new InvalidOperationException("Token retrieval timed out (request never run)"));
return true; return true;
void handleTokenFailure(Exception exception) void handleTokenFailure(Exception exception)
{ {
// This method may be invoked multiple times due to the Task.Wait call above. tcs.SetResult(false);
// We only really care about the first error.
if (!tcs.TrySetResult(false))
return;
if (HandleTokenRetrievalFailure(exception)) if (HandleTokenRetrievalFailure(exception))
{ {