summaryrefslogtreecommitdiff
path: root/libs/ardour/audioengine.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-10-07 20:30:06 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-10-07 20:30:06 -0400
commitda7d3afc8763fa4a966a3c10a0c4c9560cc4ebe6 (patch)
treef161be57f85adb46ca7fb66ffdef62a09f3e9107 /libs/ardour/audioengine.cc
parentf1b2674d9b768ed20a5f8aae7e59962c5ed514a4 (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.cc16
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;