Mesen2/Core/Shared/EmulatorLock.cpp
Sour 236cca1cd9 Movies: Fixed freeze when attempting to load a movie while the debugger is opened
Fixed an identical freeze when switching tracks in a HES file while the debugger is opened
2023-02-08 22:34:00 -05:00

35 lines
717 B
C++

#include "pch.h"
#include "Shared/EmulatorLock.h"
#include "Shared/Emulator.h"
#include "Shared/DebuggerRequest.h"
#include "Debugger/DebugBreakHelper.h"
EmulatorLock::EmulatorLock(Emulator *emu, bool allowDebuggerLock)
{
_emu = emu;
if(_emu->_runLock.IsLockedByCurrentThread()) {
_emu->Lock();
} else {
if(allowDebuggerLock) {
_debugger.reset(new DebuggerRequest(emu->GetDebugger(false)));
if(_debugger->GetDebugger()) {
_breakHelper.reset(new DebugBreakHelper(_debugger->GetDebugger(), true));
} else {
_debugger.reset();
_emu->Lock();
}
} else {
_emu->Lock();
}
}
}
EmulatorLock::~EmulatorLock()
{
if(_debugger) {
_breakHelper.reset();
} else {
_emu->Unlock();
}
}