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

Responsive and thread-safe track analysis (ad-hoc + batch) #1413

Closed
wants to merge 146 commits into from
Closed

Responsive and thread-safe track analysis (ad-hoc + batch) #1413

wants to merge 146 commits into from

Commits on Dec 24, 2017

  1. Fix potential race condition in AnalyzerQueue...

    ...that might prematurely abort a batch analysis. The blocking operation
    must be enclosed in a loop.
    uklotzde committed Dec 24, 2017
    Configuration menu
    Copy the full SHA
    cfbcfb7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6b2b0c7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    01b0123 View commit details
    Browse the repository at this point in the history
  4. Fix condition for prioritizing tracks queued for analysis

    ...after introducing a bug during refactoring.
    uklotzde committed Dec 24, 2017
    Configuration menu
    Copy the full SHA
    c7299af View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ef6f4ae View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    59ebd63 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    6e9a8af View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    15fd856 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    1ccc74b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    6594879 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    8f9a5b5 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    1ee6767 View commit details
    Browse the repository at this point in the history
  13. Try to publish accumulated progress updates before suspending thread

    Just in case that the analysis thread did not get the chance to
    deliver the updates while analyzing tracks.
    uklotzde committed Dec 24, 2017
    Configuration menu
    Copy the full SHA
    a51a020 View commit details
    Browse the repository at this point in the history
  14. Improve some comments

    uklotzde committed Dec 24, 2017
    Configuration menu
    Copy the full SHA
    499d2ba View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    21dad23 View commit details
    Browse the repository at this point in the history
  16. Pre-filter tracks before analysis

    Also fixed a wrong logic shortcut when determining if tracks need to be
    analyzed.
    uklotzde committed Dec 24, 2017
    Configuration menu
    Copy the full SHA
    003ed50 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    918f561 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    4944416 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    f00a3ae View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    27945e5 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    82f4012 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    15b9bbd View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    0e8a98e View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    3b59792 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    6cdb275 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    f7beba6 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    c1173b8 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    9281167 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    506de02 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    652bda7 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    4899f2d View commit details
    Browse the repository at this point in the history

Commits on Dec 25, 2017

  1. Configuration menu
    Copy the full SHA
    533a574 View commit details
    Browse the repository at this point in the history
  2. Use C++ STL threading

    ...using a simple non-recurisve mutex
    uklotzde committed Dec 25, 2017
    Configuration menu
    Copy the full SHA
    9e71e8e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c076cc4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4829701 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8bac32b View commit details
    Browse the repository at this point in the history

Commits on Dec 26, 2017

  1. Configuration menu
    Copy the full SHA
    dd54547 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c42cd75 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    aa51830 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e0f8b8b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4938d76 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    97d3880 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2017

  1. Configuration menu
    Copy the full SHA
    31ec755 View commit details
    Browse the repository at this point in the history
  2. Undo changes in VampPluginLoader

    ...the threading issues were caused by another bug somewhere else.
    uklotzde committed Dec 30, 2017
    Configuration menu
    Copy the full SHA
    5abd2d4 View commit details
    Browse the repository at this point in the history

Commits on Jan 1, 2018

  1. Revert "Undo changes in VampPluginLoader"

    The VampPluginLoader code is NOT thread-safe! But even in 2.0 we already
    create Vamp plugins from multiple threads which might fail unpredictably!!
    
    See also: http://vamp-plugins.org/forum/index.php?topic=206.0
    
    This reverts commit 5abd2d4.
    uklotzde committed Jan 1, 2018
    Configuration menu
    Copy the full SHA
    12c6989 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    185b57b View commit details
    Browse the repository at this point in the history

Commits on Jan 2, 2018

  1. Configuration menu
    Copy the full SHA
    f078fa3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    34ad1dd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5453098 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9b31aa0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2273b09 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d85be80 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d0548be View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    eb9b55f View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    800541a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a22df4e View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cc4b379 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    557c260 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    7451397 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    a1f3795 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    f597bfd View commit details
    Browse the repository at this point in the history
  16. Revert "Remove the need for AnalyzerMode enum"

    This reverts commit 5453098.
    
    # Conflicts:
    #	src/analyzer/analyzerthread.cpp
    #	src/analyzer/analyzerthread.h
    uklotzde committed Jan 2, 2018
    Configuration menu
    Copy the full SHA
    b03066f View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    23a2e4b View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2018

  1. Configuration menu
    Copy the full SHA
    2abdde4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2b35c69 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d9a4a6a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b2d7c59 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d6c2701 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    801fd7a View commit details
    Browse the repository at this point in the history
  7. Remove unused signal

    uklotzde committed Jan 3, 2018
    Configuration menu
    Copy the full SHA
    f73e179 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d50b615 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a7c0d53 View commit details
    Browse the repository at this point in the history
  10. Restore BPM preferences after stopping batch analysis

    Got lost during the refactoring.
    uklotzde committed Jan 3, 2018
    Configuration menu
    Copy the full SHA
    019bfbf View commit details
    Browse the repository at this point in the history
  11. Fix ugly and error prone bpm detection enforcement hack

    The AnalyzerMode enumeration is still not very handy, but sufficient
    until a future refactoring of the analyzer framework.
    uklotzde committed Jan 3, 2018
    Configuration menu
    Copy the full SHA
    777cc7d View commit details
    Browse the repository at this point in the history

Commits on Jan 4, 2018

  1. Configuration menu
    Copy the full SHA
    755d4d2 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2018

  1. Configuration menu
    Copy the full SHA
    2b9db6c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bd584ce View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d7067b8 View commit details
    Browse the repository at this point in the history
  4. Allow worker threads to get paused when idle

    ...this is needed for the engine workers that need to fall asleep
    as soon as no more work is ready for them.
    uklotzde committed Jan 5, 2018
    Configuration menu
    Copy the full SHA
    ca6df2a View commit details
    Browse the repository at this point in the history
  5. Add WorkerThreadScheduler = universal EngineWorkerScheduler

    ...just to demonstrate the versatility of the new approach
    uklotzde committed Jan 5, 2018
    Configuration menu
    Copy the full SHA
    b079342 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4200787 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2018

  1. Configuration menu
    Copy the full SHA
    18b8fc5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cc1a410 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0e44f4c View commit details
    Browse the repository at this point in the history
  4. Reduce shared state between threads

    ...to improve consistency of exchanged progress data and to reduce
    potential side effects.
    uklotzde committed Jan 6, 2018
    Configuration menu
    Copy the full SHA
    a7b4de5 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0e3afe9 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6a29673 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    8362a6a View commit details
    Browse the repository at this point in the history
  8. Renaming: AnalyzerQueue -> TrackAnalysisScheduler

    ...the internal "queue" is just an implementation detail. The actual
    purpose of this class is to schedule tracks for analysis and invoke
    the analyzers concurrently in the background.
    uklotzde committed Jan 6, 2018
    Configuration menu
    Copy the full SHA
    973960b View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    508443e View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    4c28f4a View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2018

  1. Configuration menu
    Copy the full SHA
    8551bff View commit details
    Browse the repository at this point in the history
  2. Connect signal and slot directly

    ...invoking the slot explicitly by a function call didn't always work
    as expected.
    uklotzde committed Jan 7, 2018
    Configuration menu
    Copy the full SHA
    767bb72 View commit details
    Browse the repository at this point in the history
  3. Rename slots

    uklotzde committed Jan 7, 2018
    Configuration menu
    Copy the full SHA
    874d498 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    934436b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7e9ebd8 View commit details
    Browse the repository at this point in the history

Commits on Jan 8, 2018

  1. Configuration menu
    Copy the full SHA
    c77a343 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9ec1596 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    baf1aac View commit details
    Browse the repository at this point in the history
  4. Fix a potential crash

    uklotzde committed Jan 8, 2018
    Configuration menu
    Copy the full SHA
    8de5419 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3d5f1f2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2250b36 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    baed8fd View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    325a45c View commit details
    Browse the repository at this point in the history
  9. Add missing Vamp mutex lock

    uklotzde committed Jan 8, 2018
    Configuration menu
    Copy the full SHA
    b6a6bc5 View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2018

  1. Configuration menu
    Copy the full SHA
    2990add View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    18a67f4 View commit details
    Browse the repository at this point in the history
  3. Revert "Reduce locking in VampPluginAdapter"

    This reverts commit 18a67f4.
    uklotzde committed Jan 9, 2018
    Configuration menu
    Copy the full SHA
    1e408c9 View commit details
    Browse the repository at this point in the history
  4. Rename member function

    uklotzde committed Jan 9, 2018
    Configuration menu
    Copy the full SHA
    daa4819 View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2018

  1. Configuration menu
    Copy the full SHA
    82f48d3 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2018

  1. Configuration menu
    Copy the full SHA
    4820197 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2018

  1. Merge branch '2.1' into lp1737537

    # Conflicts:
    #	src/track/track.cpp
    uklotzde committed Feb 24, 2018
    Configuration menu
    Copy the full SHA
    8d4facd View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2018

  1. Configuration menu
    Copy the full SHA
    9fbc2fa View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2018

  1. Configuration menu
    Copy the full SHA
    8ab5f8b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0dd6859 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5a8039e View commit details
    Browse the repository at this point in the history

Commits on Mar 8, 2018

  1. Configuration menu
    Copy the full SHA
    28b4f10 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8eb72ed View commit details
    Browse the repository at this point in the history

Commits on Mar 10, 2018

  1. Configuration menu
    Copy the full SHA
    48b0b23 View commit details
    Browse the repository at this point in the history
  2. Simplify the design of analysis workers

    ...by using a dedicated managed pointer for analysis threads that is
    now also reusable.
    uklotzde committed Mar 10, 2018
    Configuration menu
    Copy the full SHA
    2499420 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    751e1cd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fbce3ab View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b7a8ba1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4f533cb View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    5a2401c View commit details
    Browse the repository at this point in the history
  8. Fix incomplete renaming of member function

    ...caused by naming conflict with QThread::exec().
    uklotzde committed Mar 10, 2018
    Configuration menu
    Copy the full SHA
    102d283 View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2018

  1. Configuration menu
    Copy the full SHA
    2b02e51 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    012f035 View commit details
    Browse the repository at this point in the history
  3. Add a destructive read operation for ControlValueAtomic

    ...to ensure that no valid track pointers remain in the ring buffer,
    preventing the corresponding track objects from being saved and deleted.
    uklotzde committed Mar 11, 2018
    Configuration menu
    Copy the full SHA
    4866738 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    55900a1 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2018

  1. Merge branch '2.1' into lp1737537

    # Conflicts:
    #	src/widget/woverview.cpp
    uklotzde committed Mar 17, 2018
    Configuration menu
    Copy the full SHA
    0bf89d6 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2018

  1. Configuration menu
    Copy the full SHA
    34e811e View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2018

  1. Configuration menu
    Copy the full SHA
    0169573 View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2018

  1. Merge branch '2.1' of https://github.com/mixxxdj/mixxx.git into devel…

    …opment
    
    # Conflicts:
    #	src/mixer/playermanager.cpp
    uklotzde committed Apr 5, 2018
    Configuration menu
    Copy the full SHA
    b3596d3 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2018

  1. Configuration menu
    Copy the full SHA
    8502b90 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2018

  1. Configuration menu
    Copy the full SHA
    17f3ef6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    29a7711 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2714327 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cc34144 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    920a00b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    360f988 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2018

  1. Configuration menu
    Copy the full SHA
    bc0bd79 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1616 from uklotzde/lp1763007_pasuspender_usage

    lp1763007: Fix invocation args of pasuspender
    daschuer authored Apr 17, 2018
    Configuration menu
    Copy the full SHA
    4eb23c3 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1619 from uklotzde/lp1719474_fix_scrolling_throug…

    …h_crates_and_playlists
    
    lp1719474: Fix unresponsive scrolling through crates & playlists using encoder
    daschuer authored Apr 17, 2018
    Configuration menu
    Copy the full SHA
    34b0a82 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #1618 from daschuer/211bugfixes

    debug assert fix + lp745679 false poisitiv restart request
    uklotzde authored Apr 17, 2018
    Configuration menu
    Copy the full SHA
    cfe067f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c0448f4 View commit details
    Browse the repository at this point in the history