mirror of https://github.com/ppy/osu
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. |
||
---|---|---|
.. | ||
Multiplayer | ||
EditorClockTestScene.cs | ||
EditorTestScene.cs | ||
LegacySkinPlayerTestScene.cs | ||
ModPerfectTestScene.cs | ||
ModTestScene.cs | ||
OsuGridTestScene.cs | ||
OsuManualInputManagerTestScene.cs | ||
OsuTestScene.cs | ||
PlacementBlueprintTestScene.cs | ||
PlayerTestScene.cs | ||
RateAdjustedBeatmapTestScene.cs | ||
RoomTestScene.cs | ||
ScreenTestScene.cs | ||
ScrollingTestContainer.cs | ||
SelectionBlueprintTestScene.cs | ||
SkinnableTestScene.cs | ||
TestPlayer.cs |