From: Robin Gareus Date: Thu, 14 Apr 2016 20:13:25 +0000 (+0200) Subject: fix locking when switching strict i/o. X-Git-Tag: 5.0-pre0~948 X-Git-Url: https://main.carlh.net/gitweb/?p=ardour.git;a=commitdiff_plain;h=03db4805fde8cd455ff1dbb284118d96152efeca fix locking when switching strict i/o. try_configure_processors_unlocked() needs process lock --- diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 1db571385f..a3eacb3588 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2568,6 +2568,8 @@ Route::customize_plugin_insert (boost::shared_ptr proc, uint32_t coun bool Route::set_strict_io (const bool enable) { + Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ()); + if (_strict_io != enable) { _strict_io = enable; Glib::Threads::RWLock::ReaderLock lm (_processor_lock); @@ -2593,10 +2595,9 @@ Route::set_strict_io (const bool enable) } lm.release (); - { - Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ()); - configure_processors (0); - } + configure_processors (0); + lx.release (); + processors_changed (RouteProcessorChange ()); /* EMIT SIGNAL */ _session.set_dirty (); }