fix import-thread SNAFU
* pressing Esc or WM close button did not cancel import thread * proper Abort does not wait for import thread either It was possible to launch a 2nd (and Nth) import thread, all sharing the Editor's ImportStatus data-structure, all having the same registered thread-name and same thread-pool name. Plenty of room for crashes.
This commit is contained in:
parent
9ad096b611
commit
03660573e2
@ -507,7 +507,10 @@ Editor::import_sndfiles (vector<string> paths,
|
||||
gtk_main_iteration ();
|
||||
}
|
||||
|
||||
import_status.done = true;
|
||||
// wait for thread to terminate
|
||||
while (!import_status.done) {
|
||||
gtk_main_iteration ();
|
||||
}
|
||||
|
||||
int result = -1;
|
||||
|
||||
|
@ -55,6 +55,14 @@ InterthreadProgressWindow::InterthreadProgressWindow (ARDOUR::InterThreadInfo* i
|
||||
Glib::signal_timeout().connect (sigc::mem_fun (*this, &InterthreadProgressWindow::update), 100);
|
||||
}
|
||||
|
||||
void
|
||||
InterthreadProgressWindow::on_hide ()
|
||||
{
|
||||
if (!_interthread_info->done) {
|
||||
_interthread_info->cancel = true;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
InterthreadProgressWindow::cancel_clicked ()
|
||||
{
|
||||
|
@ -42,6 +42,7 @@ public:
|
||||
protected:
|
||||
|
||||
virtual bool update ();
|
||||
virtual void on_hide ();
|
||||
|
||||
Gtk::Button _cancel_button;
|
||||
Gtk::Label _cancel_label;
|
||||
|
Loading…
Reference in New Issue
Block a user