Just noticed that writing metadata can take ages even after the main window has closed.
I suspect this can cause trouble with the database or config when it's restarted while the previous instance is still running?
Though that's a tricky one. There's probably no way to show a popup because IIUC closing MixxxMainWindow triggers CoreServices::finalize() which in turn deletes Library (which triggers the metadata writing?)
So key for fixing this seems telling GlobalTrackCache (?) to evict and save all tracks before the main window accepts the close event. (much like the playing deck warning I guess)
This is currently done in GlobalTrackCache::deactivate()
Just noticed that writing metadata can take ages even after the main window has closed.
I suspect this can cause trouble with the database or config when it's restarted while the previous instance is still running?
Though that's a tricky one. There's probably no way to show a popup because IIUC closing MixxxMainWindow triggers CoreServices::finalize() which in turn deletes Library (which triggers the metadata writing?)
So key for fixing this seems telling GlobalTrackCache (?) to evict and save all tracks before the main window accepts the close event. (much like the playing deck warning I guess)
This is currently done in
GlobalTrackCache::deactivate()