diff --git a/simulators/bochs/cpu/cpu.cc b/simulators/bochs/cpu/cpu.cc index 65a10e69..4e68859b 100644 --- a/simulators/bochs/cpu/cpu.cc +++ b/simulators/bochs/cpu/cpu.cc @@ -134,7 +134,7 @@ void BX_CPU_C::cpu_loop(Bit32u max_instr_count) } // DanceOS #ifdef DANCEOS_RESTORE - else if(fail::restore_bochs_request) { + if (fail::restore_bochs_request) { return; } #endif diff --git a/src/core/sal/bochs/BochsController.cc b/src/core/sal/bochs/BochsController.cc index 77156c06..91fe7174 100644 --- a/src/core/sal/bochs/BochsController.cc +++ b/src/core/sal/bochs/BochsController.cc @@ -151,6 +151,7 @@ void BochsController::save(const std::string& path) // TODO: (Non-)Verbose-Mode? Log-level? Maybe better: use return value to indicate failure? save_bochs_request = true; + BX_CPU(0)->async_event |= 1; sr_path = path; m_CurrFlow = m_Flows.getCurrent(); m_Flows.resume(); @@ -166,6 +167,7 @@ void BochsController::restore(const std::string& path) { clearEvents(); restore_bochs_request = true; + BX_CPU(0)->async_event |= 1; sr_path = path; m_CurrFlow = m_Flows.getCurrent(); m_Flows.resume();