mirror of
https://github.com/ppy/osu.git
synced 2025-02-15 18:13:09 +08:00
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. |
||
---|---|---|
.. | ||
Backgrounds | ||
Edit | ||
Import | ||
Menu | ||
OnlinePlay | ||
Play | ||
Ranking | ||
Select | ||
BackgroundScreen.cs | ||
BackgroundScreenStack.cs | ||
IOsuScreen.cs | ||
Loader.cs | ||
OsuScreen.cs | ||
OsuScreenDependencies.cs | ||
OsuScreenStack.cs | ||
ScorePresentType.cs | ||
ScreenWhiteBox.cs | ||
StartupScreen.cs |