diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-11-27 17:42:09 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-11-27 17:42:09 +0000 |
commit | 979a61eb3f1729affe1b0ab4201749b5cde11f68 (patch) | |
tree | 9d65188b65ab2d1999b0bfe14315fd36575b333f /libs/ardour/audioengine.cc | |
parent | f3a833e38e669d3194652ddba40fa10377ff750a (diff) |
remove (or attempt to remove) requirement for holding process lock when changing connections
git-svn-id: svn://localhost/ardour2/branches/3.0@8110 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audioengine.cc')
-rw-r--r-- | libs/ardour/audioengine.cc | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 5f619d8392..32ebe1643e 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -847,8 +847,6 @@ AudioEngine::unregister_port (Port& port) int AudioEngine::connect (const string& source, const string& destination) { - /* caller must hold process lock */ - int ret; if (!_running) { @@ -864,8 +862,8 @@ AudioEngine::connect (const string& source, const string& destination) string d = make_port_name_non_relative (destination); - Port* src = get_port_by_name_locked (s); - Port* dst = get_port_by_name_locked (d); + Port* src = get_port_by_name (s); + Port* dst = get_port_by_name (d); if (src) { ret = src->connect (d); @@ -890,8 +888,6 @@ AudioEngine::connect (const string& source, const string& destination) int AudioEngine::disconnect (const string& source, const string& destination) { - /* caller must hold process lock */ - int ret; if (!_running) { @@ -906,8 +902,8 @@ AudioEngine::disconnect (const string& source, const string& destination) string s = make_port_name_non_relative (source); string d = make_port_name_non_relative (destination); - Port* src = get_port_by_name_locked (s); - Port* dst = get_port_by_name_locked (d); + Port* src = get_port_by_name (s); + Port* dst = get_port_by_name (d); if (src) { ret = src->disconnect (d); @@ -974,30 +970,22 @@ Port * AudioEngine::get_port_by_name (const string& portname) { string s; - if (portname.find_first_of (':') == string::npos) { - s = make_port_name_non_relative (portname); - } else { - s = portname; - } - - Glib::Mutex::Lock lm (_process_lock); - return get_port_by_name_locked (s); -} - -Port * -AudioEngine::get_port_by_name_locked (const string& portname) -{ - /* caller must hold process lock */ if (!_running) { if (!_has_run) { - fatal << _("get_port_by_name_locked() called before engine was started") << endmsg; + fatal << _("get_port_by_name() called before engine was started") << endmsg; /*NOTREACHED*/ } else { return 0; } } + if (portname.find_first_of (':') == string::npos) { + s = make_port_name_non_relative (portname); + } else { + s = portname; + } + if (portname.substr (0, jack_client_name.length ()) != jack_client_name) { /* not an ardour: port */ return 0; |