From 78a66b71803bda9157ef361d815f3b148cec5a8d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 7 Apr 2020 23:26:51 -0600 Subject: [PATCH] improved port cleanup as backend is destroyed --- libs/backends/alsa/alsa_audiobackend.cc | 2 ++ libs/backends/coreaudio/coreaudio_backend.cc | 3 +++ libs/backends/jack/jack_audiobackend.cc | 1 + libs/backends/portaudio/portaudio_backend.cc | 2 ++ libs/backends/pulseaudio/pulseaudio_backend.cc | 2 ++ 5 files changed, 10 insertions(+) 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); }