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:
parent
98721b1267
commit
9d063943bb
@ -2993,11 +2993,11 @@ Playlist::ripple (samplepos_t at, samplecnt_t distance, RegionList* exclude)
|
|||||||
void
|
void
|
||||||
Playlist::update_after_tempo_map_change ()
|
Playlist::update_after_tempo_map_change ()
|
||||||
{
|
{
|
||||||
|
freeze ();
|
||||||
|
|
||||||
RegionWriteLock rlock (const_cast<Playlist*> (this));
|
RegionWriteLock rlock (const_cast<Playlist*> (this));
|
||||||
RegionList copy (regions.rlist ());
|
RegionList copy (regions.rlist ());
|
||||||
|
|
||||||
freeze ();
|
|
||||||
|
|
||||||
for (RegionList::iterator i = copy.begin (); i != copy.end (); ++i) {
|
for (RegionList::iterator i = copy.begin (); i != copy.end (); ++i) {
|
||||||
rlock.thawlist.add (*i);
|
rlock.thawlist.add (*i);
|
||||||
(*i)->update_after_tempo_map_change ();
|
(*i)->update_after_tempo_map_change ();
|
||||||
|
Loading…
Reference in New Issue
Block a user