Sfoglia il codice sorgente

core: Shutdown: Move kernel cleanup to later in shutdown.

- Fixes a shutdown crash due to a race condition with GPU still accessing memory.
bunnei 5 anni fa
parent
commit
925671071c
1 ha cambiato i file con 1 aggiunte e 12 eliminazioni
  1. 1 12
      src/core/core.cpp

+ 1 - 12
src/core/core.cpp

@@ -299,28 +299,17 @@ struct System::Impl {
             gpu_core->WaitIdle();
             gpu_core->WaitIdle();
         }
         }
 
 
-        // Shutdown emulation session
         services.reset();
         services.reset();
         service_manager.reset();
         service_manager.reset();
         cheat_engine.reset();
         cheat_engine.reset();
         telemetry_session.reset();
         telemetry_session.reset();
-
-        // Close all CPU/threading state
         cpu_manager.Shutdown();
         cpu_manager.Shutdown();
-
-        // Release the Time Manager's resources
         time_manager.Shutdown();
         time_manager.Shutdown();
-
-        // Shutdown kernel and core timing
         core_timing.Shutdown();
         core_timing.Shutdown();
-        kernel.Shutdown();
-
-        // Close app loader
         app_loader.reset();
         app_loader.reset();
         gpu_core.reset();
         gpu_core.reset();
         perf_stats.reset();
         perf_stats.reset();
-
-        // Clear all applets
+        kernel.Shutdown();
         applet_manager.ClearAll();
         applet_manager.ClearAll();
 
 
         LOG_DEBUG(Core, "Shutdown OK");
         LOG_DEBUG(Core, "Shutdown OK");