--- gigedit/trunk/src/gigedit/mainwindow.cpp 2019/02/14 19:10:49 3470 +++ gigedit/trunk/src/gigedit/mainwindow.cpp 2019/02/16 19:13:37 3471 @@ -1970,6 +1970,10 @@ return error_dispatcher; } +void LoaderSaverBase::join() { + thread->join(); +} + Loader::Loader(const char* filename) : LoaderSaverBase(filename, 0) @@ -2258,6 +2262,7 @@ void MainWindow::on_loader_finished() { + loader->join(); printf("Loader finished!\n"); printf("on_loader_finished self=%p\n", static_cast(Glib::Threads::Thread::self())); @@ -2267,6 +2272,7 @@ void MainWindow::on_loader_error() { + loader->join(); Glib::ustring txt = _("Could not load file: ") + loader->error_message; Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR); msg.run(); @@ -2337,6 +2343,7 @@ void MainWindow::on_saver_error() { + saver->join(); file_structure_changed_signal.emit(this->file); Glib::ustring txt = _("Could not save file: ") + saver->error_message; Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR); @@ -2345,6 +2352,7 @@ void MainWindow::on_saver_finished() { + saver->join(); this->file = saver->gig; this->filename = saver->filename; current_gig_dir = Glib::path_get_dirname(filename);