diff options
author | Robin Gareus <robin@gareus.org> | 2017-07-28 20:15:15 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-28 20:15:15 +0200 |
commit | b5e0b5b09f41d2529bf4ba37f69602f914828e58 (patch) | |
tree | 9b29192370601cd67ea802bd6c3cde7e6b387f6c /libs/surfaces/faderport8 | |
parent | 964b88e651ac3324d85f735aad3faba226b582f6 (diff) |
PortManager::unregister_port() must be called with process lock
This fixes "Failed to register <surface> port" when re-loading a session.
Diffstat (limited to 'libs/surfaces/faderport8')
-rw-r--r-- | libs/surfaces/faderport8/faderport8.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/surfaces/faderport8/faderport8.cc b/libs/surfaces/faderport8/faderport8.cc index a812e1a4d7..9b35578255 100644 --- a/libs/surfaces/faderport8/faderport8.cc +++ b/libs/surfaces/faderport8/faderport8.cc @@ -155,6 +155,7 @@ FaderPort8::~FaderPort8 () if (_input_port) { DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("unregistering input port %1\n", boost::shared_ptr<ARDOUR::Port>(_input_port)->name())); + Glib::Threads::Mutex::Lock em (AudioEngine::instance()->process_lock()); AudioEngine::instance()->unregister_port (_input_port); _input_port.reset (); } @@ -164,6 +165,7 @@ FaderPort8::~FaderPort8 () if (_output_port) { _output_port->drain (10000, 250000); /* check every 10 msecs, wait up to 1/4 second for the port to drain */ DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("unregistering output port %1\n", boost::shared_ptr<ARDOUR::Port>(_output_port)->name())); + Glib::Threads::Mutex::Lock em (AudioEngine::instance()->process_lock()); AudioEngine::instance()->unregister_port (_output_port); _output_port.reset (); } |