summaryrefslogtreecommitdiff
path: root/libs/ardour/audioengine.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-11-27 17:42:09 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-11-27 17:42:09 +0000
commit979a61eb3f1729affe1b0ab4201749b5cde11f68 (patch)
tree9d65188b65ab2d1999b0bfe14315fd36575b333f /libs/ardour/audioengine.cc
parentf3a833e38e669d3194652ddba40fa10377ff750a (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.cc34
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;