summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2020-04-07 23:26:51 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2020-04-07 23:26:51 -0600
commit78a66b71803bda9157ef361d815f3b148cec5a8d (patch)
treee15d31659a842bdd1af475da1a4defbb6909bc35 /libs
parentec9784764c9996a3af15459b1f9425f3eeb95d92 (diff)
improved port cleanup as backend is destroyed
Diffstat (limited to 'libs')
-rw-r--r--libs/backends/alsa/alsa_audiobackend.cc2
-rw-r--r--libs/backends/coreaudio/coreaudio_backend.cc3
-rw-r--r--libs/backends/jack/jack_audiobackend.cc1
-rw-r--r--libs/backends/portaudio/portaudio_backend.cc2
-rw-r--r--libs/backends/pulseaudio/pulseaudio_backend.cc2
5 files changed, 10 insertions, 0 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc
index 81e79669fd..ffb1f6a6fa 100644
--- a/libs/backends/alsa/alsa_audiobackend.cc
+++ b/libs/backends/alsa/alsa_audiobackend.cc
@@ -89,6 +89,8 @@ AlsaAudioBackend::AlsaAudioBackend (AudioEngine& e, AudioBackendInfo& info)
AlsaAudioBackend::~AlsaAudioBackend ()
{
+ clear_ports ();
+
pthread_mutex_destroy (&_port_callback_mutex);
pthread_mutex_destroy (&_device_port_mutex);
}
diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc
index 7afc40183e..2c4e03e116 100644
--- a/libs/backends/coreaudio/coreaudio_backend.cc
+++ b/libs/backends/coreaudio/coreaudio_backend.cc
@@ -129,6 +129,9 @@ CoreAudioBackend::~CoreAudioBackend ()
{
delete _pcmio; _pcmio = 0;
delete _midiio; _midiio = 0;
+
+ clear_ports ();
+
pthread_mutex_destroy (&_port_callback_mutex);
pthread_mutex_destroy (&_port_registration_mutex);
pthread_mutex_destroy (&_process_callback_mutex);
diff --git a/libs/backends/jack/jack_audiobackend.cc b/libs/backends/jack/jack_audiobackend.cc
index d33d3d6c5f..254dfa4147 100644
--- a/libs/backends/jack/jack_audiobackend.cc
+++ b/libs/backends/jack/jack_audiobackend.cc
@@ -72,6 +72,7 @@ JACKAudioBackend::JACKAudioBackend (AudioEngine& e, AudioBackendInfo& info, boos
JACKAudioBackend::~JACKAudioBackend()
{
+ _jack_ports.clear ();
}
string
diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc
index ba72910d44..779bfc423b 100644
--- a/libs/backends/portaudio/portaudio_backend.cc
+++ b/libs/backends/portaudio/portaudio_backend.cc
@@ -106,6 +106,8 @@ PortAudioBackend::~PortAudioBackend ()
delete _pcmio; _pcmio = 0;
delete _midiio; _midiio = 0;
+ clear_ports ();
+
pthread_mutex_destroy (&_port_callback_mutex);
pthread_mutex_destroy (&_freewheel_mutex);
pthread_cond_destroy (&_freewheel_signal);
diff --git a/libs/backends/pulseaudio/pulseaudio_backend.cc b/libs/backends/pulseaudio/pulseaudio_backend.cc
index d16ea73bf2..2af182a94e 100644
--- a/libs/backends/pulseaudio/pulseaudio_backend.cc
+++ b/libs/backends/pulseaudio/pulseaudio_backend.cc
@@ -69,6 +69,8 @@ PulseAudioBackend::PulseAudioBackend (AudioEngine& e, AudioBackendInfo& info)
PulseAudioBackend::~PulseAudioBackend ()
{
+ clear_ports ();
+
pthread_mutex_destroy (&_port_callback_mutex);
}