Fix Emulation boot recursion

This commit is contained in:
Elad 2024-11-26 12:09:02 +02:00
parent 378a69ea85
commit 07df91d4e8
4 changed files with 85 additions and 4 deletions

View file

@ -195,13 +195,17 @@ void gui_settings::ShowInfoBox(const QString& title, const QString& text, const
bool gui_settings::GetBootConfirmation(QWidget* parent, const gui_save& gui_save_entry)
{
auto info = Emu.GetEmulationIdentifier();
// Ensure no game has booted inbetween
const auto guard = Emu.MakeEmulationStateGuard();
const auto info = Emu.GetEmulationIdentifier();
const auto old_status = Emu.GetStatus(false);
qt_events_aware_op(16, [&]()
{
if (Emu.GetStatus(false) != system_state::stopping)
{
ensure(info == Emu.GetEmulationIdentifier());
ensure(info == Emu.GetEmulationIdentifier(old_status == system_state::stopping ? true : false));
return true;
}