1. 15 Jun, 2022 2 commits
  2. 25 May, 2022 2 commits
  3. 05 May, 2022 1 commit
  4. 26 Apr, 2022 4 commits
  5. 23 Apr, 2022 3 commits
  6. 06 Feb, 2022 1 commit
  7. 08 Jan, 2022 3 commits
  8. 07 Jan, 2022 3 commits
  9. 02 Jan, 2022 1 commit
  10. 31 Dec, 2021 3 commits
  11. 03 Oct, 2021 1 commit
  12. 29 Sep, 2021 1 commit
  13. 24 Sep, 2021 2 commits
    • Frank Schaefer's avatar
    • Frank Schaefer's avatar
      AsyncMusicBrainzLookup: fix a crash and a memory leak · dab0a7a6
      Frank Schaefer authored
      From the documentation of QThread::~QThread():
      "... Note that deleting a QThread object will not stop the execution of the
       thread it manages. Deleting a running QThread (i.e. isFinished() returns false)
       will probably result in a program crash.
       Wait for the finished() signal before deleting the QThread."
      
      The destructor of class AsyncMusicBrainzLookup currently just deletes the lookup
      thread object and does _not_ wait for the running thread to finish.
      If it is called while the lookup thread is still running, a crash occurs.
      
      In addition to that, we are leaking the memory of a previously instanciated
      lookup thread object if the lookup() method is called multiple times.
      
      To maintain the current behavior of the destructor (non-blocking) and the
      lookup() method (always start a new lookup without canceling pending lookups),
      solve both issues by making the lookup thread object self-destructive.
      As part of the solution the lookup thread is modifed to deliver the lookup results
      directly with the "lookupFinished" signal. This has two benefits:
      1.) the queued signal-slot connection avoids thread synchronization/locking issues
      2.) some class members become obsolete
      dab0a7a6
  14. 13 Jun, 2021 1 commit
  15. 17 May, 2021 5 commits
  16. 02 May, 2021 1 commit
  17. 24 Jan, 2021 1 commit
  18. 19 Jan, 2021 1 commit
  19. 17 Jan, 2021 1 commit
  20. 07 Jan, 2021 1 commit
  21. 29 Dec, 2020 2 commits