fixed an issue where the CPU sometimes single-steps an extra time after pausing
This commit is contained in:
parent
ced8ca7219
commit
81a1efab8e
|
@ -72,6 +72,13 @@ public:
|
||||||
is_set = false;
|
is_set = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Reset()
|
||||||
|
{
|
||||||
|
std::unique_lock<std::mutex> lk(m_mutex);
|
||||||
|
// no other action required, since wait loops on the predicate and any lingering signal will get cleared on the first iteration
|
||||||
|
is_set = false;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class IsSet
|
class IsSet
|
||||||
{
|
{
|
||||||
|
|
|
@ -115,6 +115,7 @@ void CCPU::EnableStepping(const bool _bStepping)
|
||||||
if (_bStepping)
|
if (_bStepping)
|
||||||
{
|
{
|
||||||
PowerPC::Pause();
|
PowerPC::Pause();
|
||||||
|
m_StepEvent.Reset();
|
||||||
g_video_backend->EmuStateChange(EMUSTATE_CHANGE_PAUSE);
|
g_video_backend->EmuStateChange(EMUSTATE_CHANGE_PAUSE);
|
||||||
DSP::GetDSPEmulator()->DSP_ClearAudioBuffer(true);
|
DSP::GetDSPEmulator()->DSP_ClearAudioBuffer(true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue