Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI freezes when applying actions on multiple/many tracks #8480

Closed
mixxxbot opened this issue Aug 22, 2022 · 8 comments
Closed

UI freezes when applying actions on multiple/many tracks #8480

mixxxbot opened this issue Aug 22, 2022 · 8 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: sblaisot
Date: 2016-02-20T17:11:24Z
Status: Fix Released
Importance: High
Launchpad Issue: lp1547916
Tags: gui, library, metadata


I just discovered a bug in Mixxx 2.0.0 (64 bits on win 10 64b).

If you select a (rather) large number of tracks in the library, open right-click menu and select BPM->Reset tempo and beatgrid, the interface freezes until mixxx has finish resetting tempo and beatgrid on all these tracks.

I've just seen that with 1000 tracks selected.

This should probably be done in another low-priority thread.

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2018-04-18T17:42:47Z


#1624

I'll keep this bug and not mark it as a duplicate, because this one actually describes one of the issues with the current analysis architecture. Unrelated to multi-threading.

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2018-04-18T17:43:55Z


Sorry, Sebastien, that I didn't notice this earlier!

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2018-04-23T07:34:19Z


This is not a duplicate, but a known issue! In fact the new issue recently reported by Sean is a duplicate of this issue:

https://bugs.launchpad.net/mixxx/+bug/1765528

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2018-04-23T07:38:26Z


We don't need a separate worker thread. I already have an idea in my mind how such a reactive, event-loop-driven TrackActionScheduler can be implemented efficiently:

  • shared queue of pending track ids
  • queue of pending actions: action functor working on a single TrackPointer, number of total tracks, number of finished tracks

Some parts of the new TrackAnalysisScheduler might be reusable.

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2018-09-29T14:43:32Z


Unassigning myself, because I don't plan any major changes on the current software design of the UI. Even the mentioned reactive and multi-threaded redesign of the analysis has not been merged, yet.

Instead we should think about decoupling the backend from the frontend and eventually replace the frontend with QML components.

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2020-04-21T07:32:33Z


Proof of concept using a modal progress dialog that can be aborted:

#2656

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2021-02-24T18:05:59Z


The workaround is in place. Further improvements would require substantial changes to the architecture.

@mixxxbot
Copy link
Collaborator Author

Issue closed with status Fix Released.

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
@mixxxbot mixxxbot added this to the 2.3.0 milestone Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant