|
|
|
@ -96,9 +96,9 @@ void EmuThread::run() {
|
|
|
|
|
m_is_running.store(false);
|
|
|
|
|
m_is_running.notify_all();
|
|
|
|
|
|
|
|
|
|
emit DebugModeEntered();
|
|
|
|
|
EmulationPaused(lk);
|
|
|
|
|
Common::CondvarWait(m_should_run_cv, lk, stop_token, [&] { return m_should_run; });
|
|
|
|
|
emit DebugModeLeft();
|
|
|
|
|
EmulationResumed(lk);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -111,6 +111,21 @@ void EmuThread::run() {
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Unlock while emitting signals so that the main thread can
|
|
|
|
|
// continue pumping events.
|
|
|
|
|
|
|
|
|
|
void EmuThread::EmulationPaused(std::unique_lock<std::mutex>& lk) {
|
|
|
|
|
lk.unlock();
|
|
|
|
|
emit DebugModeEntered();
|
|
|
|
|
lk.lock();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void EmuThread::EmulationResumed(std::unique_lock<std::mutex>& lk) {
|
|
|
|
|
lk.unlock();
|
|
|
|
|
emit DebugModeLeft();
|
|
|
|
|
lk.lock();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef HAS_OPENGL
|
|
|
|
|
class OpenGLSharedContext : public Core::Frontend::GraphicsContext {
|
|
|
|
|
public:
|
|
|
|
|