diff options
author | bunnei <bunneidev@gmail.com> | 2018-02-22 07:07:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-22 07:07:54 +0100 |
commit | fa28dbe0f33301c77396cb53de8000afcddb271f (patch) | |
tree | b2cb9c33cff626f6bb2a3b59717d90775abdb5b9 | |
parent | Merge pull request #206 from mailwl/aoc-listaddoncontent (diff) | |
parent | core: Fix scheduler-shutdown related crash (diff) | |
download | yuzu-fa28dbe0f33301c77396cb53de8000afcddb271f.tar yuzu-fa28dbe0f33301c77396cb53de8000afcddb271f.tar.gz yuzu-fa28dbe0f33301c77396cb53de8000afcddb271f.tar.bz2 yuzu-fa28dbe0f33301c77396cb53de8000afcddb271f.tar.lz yuzu-fa28dbe0f33301c77396cb53de8000afcddb271f.tar.xz yuzu-fa28dbe0f33301c77396cb53de8000afcddb271f.tar.zst yuzu-fa28dbe0f33301c77396cb53de8000afcddb271f.zip |
-rw-r--r-- | src/core/core.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 8c5dd3761..4fb035556 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -139,6 +139,8 @@ void System::Reschedule() { System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) { LOG_DEBUG(HW_Memory, "initialized OK"); + CoreTiming::Init(); + switch (Settings::values.cpu_core) { case Settings::CpuCore::Unicorn: cpu_core = std::make_shared<ARM_Unicorn>(); @@ -154,14 +156,13 @@ System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) { break; } - scheduler = std::make_unique<Kernel::Scheduler>(cpu_core.get()); gpu_core = std::make_unique<Tegra::GPU>(); telemetry_session = std::make_unique<Core::TelemetrySession>(); - CoreTiming::Init(); HW::Init(); Kernel::Init(system_mode); + scheduler = std::make_unique<Kernel::Scheduler>(cpu_core.get()); Service::Init(); GDBStub::Init(); @@ -189,15 +190,18 @@ void System::Shutdown() { perf_results.frametime * 1000.0); // Shutdown emulation session - GDBStub::Shutdown(); VideoCore::Shutdown(); + GDBStub::Shutdown(); Service::Shutdown(); + scheduler = nullptr; Kernel::Shutdown(); HW::Shutdown(); - CoreTiming::Shutdown(); + telemetry_session = nullptr; + gpu_core = nullptr; cpu_core = nullptr; + CoreTiming::Shutdown(); + app_loader = nullptr; - telemetry_session = nullptr; LOG_DEBUG(Core, "Shutdown OK"); } |