1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 02:27:25 +08:00
Commit Graph

10 Commits

Author SHA1 Message Date
Bartłomiej Dach
5f320cd426 Move lease check inside schedule
Theoretically safer due to avoiding a potential data race (change in
`leasedInProgress` between the time of the check and start of schedule
execution).
2021-01-30 21:03:09 +01:00
Bartłomiej Dach
96f56d1c94 Return tracker lease via UnbindAll()
Improves reliability by being fail-safe in case of multiple returns,
which can happen if the operation tracker is part of a screen being
exited (as is the case with its current primary usage in multiplayer).
2021-01-30 21:00:13 +01:00
Dean Herbert
10e8b7082e Rework logic to avoid custom disposal early return handling 2021-01-25 16:53:58 +09:00
Bartłomiej Dach
d22f557a3b Remove possibility of double-disposal interference 2021-01-23 16:14:58 +01:00
Bartłomiej Dach
7f89d9117d Make disposal of tracker idempotent for operations 2021-01-23 16:04:12 +01:00
Bartłomiej Dach
18b309a195 Make disposal of tracker operation idempotent 2021-01-23 16:02:51 +01:00
Bartłomiej Dach
8c3955d341 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.
2021-01-09 22:45:24 +01:00
Bartłomiej Dach
dad5dd3667 Remove unnecessary permissiveness wrt null 2021-01-08 22:21:54 +01:00
Bartłomiej Dach
f59ba799d3 Adjust operation tracker implementation 2020-12-29 07:54:27 +01:00
Bartłomiej Dach
9e6994166c Add helper to track ongoing operations in UI 2020-12-28 22:48:03 +01:00