diff --git a/osu.Game/Beatmaps/BeatmapDifficultyCache.cs b/osu.Game/Beatmaps/BeatmapDifficultyCache.cs index 4ef484cb67..71d34404cf 100644 --- a/osu.Game/Beatmaps/BeatmapDifficultyCache.cs +++ b/osu.Game/Beatmaps/BeatmapDifficultyCache.cs @@ -82,8 +82,11 @@ namespace osu.Game.Beatmaps modSettingChangeTracker = new ModSettingChangeTracker(mods.NewValue); modSettingChangeTracker.SettingChanged += _ => { - debouncedModSettingsChange?.Cancel(); - debouncedModSettingsChange = Scheduler.AddDelayed(updateTrackedBindables, 100); + lock (bindableUpdateLock) + { + debouncedModSettingsChange?.Cancel(); + debouncedModSettingsChange = Scheduler.AddDelayed(updateTrackedBindables, 100); + } }; }, true); } @@ -195,6 +198,9 @@ namespace osu.Game.Beatmaps { lock (bindableUpdateLock) { + debouncedModSettingsChange?.Cancel(); + debouncedModSettingsChange = null; + trackedUpdateCancellationSource.Cancel(); trackedUpdateCancellationSource = new CancellationTokenSource();