13
0

Fix deadlock when changing tempo

since dcc0f1cb17 Playlist::freeze takes a RegionWriteLock,
so freeze() must not be called with a Lock already held.
This commit is contained in:
Robin Gareus 2021-05-17 21:15:58 +02:00
parent 98721b1267
commit 9d063943bb
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -2993,11 +2993,11 @@ Playlist::ripple (samplepos_t at, samplecnt_t distance, RegionList* exclude)
void
Playlist::update_after_tempo_map_change ()
{
freeze ();
RegionWriteLock rlock (const_cast<Playlist*> (this));
RegionList copy (regions.rlist ());
freeze ();
for (RegionList::iterator i = copy.begin (); i != copy.end (); ++i) {
rlock.thawlist.add (*i);
(*i)->update_after_tempo_map_change ();