}
}
+ second_connection.disconnect ();
+ point_one_second_connection.disconnect ();
+ point_oh_five_second_connection.disconnect ();
+ point_zero_one_second_connection.disconnect();
+
// session->set_deletion_in_progress ();
+ session->remove_pending_capture_state ();
delete session;
+ session = 0;
}
ArdourDialog::close_all_dialogs ();
void
ARDOUR_UI::shutdown ()
{
- if (session) {
- /* we're exiting cleanly, so remove any auto-save data */
- session->remove_pending_capture_state ();
- session = 0;
- }
-
ui_config->save_state();
}
}
}
+/** The main editor window has been closed */
gint
ARDOUR_UI::exit_on_main_window_close (GdkEventAny * /*ev*/)
{
{
Metering::disconnect (_meter_connection);
- clear_processors (PreFader);
- clear_processors (PostFader);
+ /* don't use clear_processors here, as it depends on the session which may
+ be half-destroyed by now */
+
+ Glib::RWLock::WriterLock lm (_processor_lock);
+ for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
+ (*i)->drop_references ();
+ }
+ _processors.clear ();
}
void