1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-17 19:04:00 +08:00
Commit Graph

3 Commits

  • Improve safety of ongoing operation tracker
    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.