diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-07 20:30:06 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-07 20:30:06 -0400 |
commit | da7d3afc8763fa4a966a3c10a0c4c9560cc4ebe6 (patch) | |
tree | f161be57f85adb46ca7fb66ffdef62a09f3e9107 /libs/ardour/audioengine.cc | |
parent | f1b2674d9b768ed20a5f8aae7e59962c5ed514a4 (diff) |
use AudioEngine destructor to do necessary stuff when shutting it down, and remove unused Config stuff in AudioEngine
Diffstat (limited to 'libs/ardour/audioengine.cc')
-rw-r--r-- | libs/ardour/audioengine.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 631a861741..f6694d88ea 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -81,6 +81,7 @@ AudioEngine::AudioEngine () , _latency_flush_frames (0) , _latency_signal_latency (0) , _started_for_latency (false) + , _in_destructor (false) { g_atomic_int_set (&m_meter_exit, 0); discover_backends (); @@ -88,15 +89,9 @@ AudioEngine::AudioEngine () AudioEngine::~AudioEngine () { + _in_destructor = true; + stop_metering_thread (); drop_backend (); - - config_connection.disconnect (); - - { - Glib::Threads::Mutex::Lock tm (_process_lock); - session_removed.signal (); - stop_metering_thread (); - } } AudioEngine* @@ -1000,6 +995,11 @@ AudioEngine::update_latencies () void AudioEngine::halted_callback (const char* why) { + if (_in_destructor) { + /* everything is under control */ + return; + } + stop_metering_thread (); _running = false; |