mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-06 05:35:47 +01:00
Use shared_ptr for Port in the AudioEngine; improves thread-safety of the audio engine's port list as a writer cannot destroy a port in one thread while the port list is being iterated in another.
git-svn-id: svn://localhost/ardour2/branches/3.0@10327 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
f65e3f287b
commit
7bdcc127e3
23 changed files with 169 additions and 175 deletions
|
|
@ -56,8 +56,8 @@ GlobalPortMatrix::set_state (BundleChannel c[2], bool s)
|
|||
for (Bundle::PortList::const_iterator i = in_ports.begin(); i != in_ports.end(); ++i) {
|
||||
for (Bundle::PortList::const_iterator j = out_ports.begin(); j != out_ports.end(); ++j) {
|
||||
|
||||
Port* p = _session->engine().get_port_by_name (*i);
|
||||
Port* q = _session->engine().get_port_by_name (*j);
|
||||
boost::shared_ptr<Port> p = _session->engine().get_port_by_name (*i);
|
||||
boost::shared_ptr<Port> q = _session->engine().get_port_by_name (*j);
|
||||
|
||||
if (p) {
|
||||
if (s) {
|
||||
|
|
@ -105,8 +105,8 @@ GlobalPortMatrix::get_state (BundleChannel c[2]) const
|
|||
for (Bundle::PortList::const_iterator i = in_ports.begin(); i != in_ports.end(); ++i) {
|
||||
for (Bundle::PortList::const_iterator j = out_ports.begin(); j != out_ports.end(); ++j) {
|
||||
|
||||
Port* p = _session->engine().get_port_by_name (*i);
|
||||
Port* q = _session->engine().get_port_by_name (*j);
|
||||
boost::shared_ptr<Port> p = _session->engine().get_port_by_name (*i);
|
||||
boost::shared_ptr<Port> q = _session->engine().get_port_by_name (*j);
|
||||
|
||||
if (!p && !q) {
|
||||
/* two non-Ardour ports; things are slightly more involved */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue