Просмотр исходного кода

Merge pull request #9569 from liamwhite/shutdown-wars

qt: additional fixes for reentrant shutdown
Morph 3 лет назад
Родитель
Сommit
3be8312120
1 измененных файлов с 7 добавлено и 3 удалено
  1. 7 3
      src/yuzu/main.cpp

+ 7 - 3
src/yuzu/main.cpp

@@ -1839,9 +1839,11 @@ void GMainWindow::OnEmulationStopTimeExpired() {
 
 void GMainWindow::OnEmulationStopped() {
     shutdown_timer.stop();
-    emu_thread->disconnect();
-    emu_thread->wait();
-    emu_thread = nullptr;
+    if (emu_thread) {
+        emu_thread->disconnect();
+        emu_thread->wait();
+        emu_thread.reset();
+    }
 
     if (shutdown_dialog) {
         shutdown_dialog->deleteLater();
@@ -3029,6 +3031,8 @@ void GMainWindow::OnStopGame() {
 
     if (OnShutdownBegin()) {
         OnShutdownBeginDialog();
+    } else {
+        OnEmulationStopped();
     }
 }