mirror of
https://github.com/ppy/osu.git
synced 2024-12-16 06:52:55 +08:00
8c3955d341
Finishing an operation started via `OngoingOperationTracker.BeginOperation()` was risky in cases where the operation ended at a callback on another thread (which, in the case of multiplayer, is *most* cases). In particular, if any consumer registered a callback that mutates transforms when the operation ends, it would result in crashes after the framework-side safety checks. Rework `OngoingOperationTracker` into an always-present component residing in the drawable hierarchy, and ensure that the `operationInProgress` bindable is always updated on the update thread. This way consumers don't have to add local schedules in multiple places. |
||
---|---|---|
.. | ||
RoomManagerTestScene.cs | ||
TestRoomManager.cs | ||
TestSceneCreateMultiplayerMatchButton.cs | ||
TestSceneDrawableRoomPlaylist.cs | ||
TestSceneLoungeRoomInfo.cs | ||
TestSceneLoungeRoomsContainer.cs | ||
TestSceneMatchBeatmapDetailArea.cs | ||
TestSceneMatchHeader.cs | ||
TestSceneMatchLeaderboard.cs | ||
TestSceneMatchSongSelect.cs | ||
TestSceneMultiHeader.cs | ||
TestSceneMultiplayer.cs | ||
TestSceneMultiplayerGameplayLeaderboard.cs | ||
TestSceneMultiplayerMatchSongSelect.cs | ||
TestSceneMultiplayerMatchSubScreen.cs | ||
TestSceneMultiplayerParticipantsList.cs | ||
TestSceneMultiplayerReadyButton.cs | ||
TestSceneMultiplayerRoomManager.cs | ||
TestSceneRoomStatus.cs |