mirror of
https://github.com/ppy/osu.git
synced 2024-11-15 05:07:50 +08:00
80c2b1449b
Specifically, `Cancel()` calls were not thread safe. Due to a series of events, `ListPollingComponent` could call `Cancel` from a non-update thread, leading to a race condition where both a `Success` and `Fail` event can be fired. This is intended to be the simplest fix possible, locking and guarding specifically on the callbacks. Further work could be done in the future to improve the flow surrounding `pendingFailure`, potentially reducing redundant work and cleaning up the code, but that's not happening here. Closes https://github.com/ppy/osu/issues/13632.
24 lines
561 B
C#
24 lines
561 B
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
namespace osu.Game.Online.API
|
|
{
|
|
public enum APIRequestCompletionState
|
|
{
|
|
/// <summary>
|
|
/// Not yet run or currently waiting on response.
|
|
/// </summary>
|
|
Waiting,
|
|
|
|
/// <summary>
|
|
/// Ran to completion.
|
|
/// </summary>
|
|
Completed,
|
|
|
|
/// <summary>
|
|
/// Cancelled or failed due to error.
|
|
/// </summary>
|
|
Failed
|
|
}
|
|
}
|