From 9d063943bbd17f088cbfbfe270ecc1bef95dde29 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 17 May 2021 21:15:58 +0200 Subject: [PATCH] Fix deadlock when changing tempo since dcc0f1cb17724b41 Playlist::freeze takes a RegionWriteLock, so freeze() must not be called with a Lock already held. --- libs/ardour/playlist.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 5c2193ca0c..3c9d32e452 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -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 (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 ();