diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp index 2407f3a3a..573060d30 100644 --- a/src/citra_qt/bootmanager.cpp +++ b/src/citra_qt/bootmanager.cpp @@ -33,7 +33,7 @@ void EmuThread::SetFilename(std::string filename) void EmuThread::run() { stop_run = false; - while (true) + while (!stop_run) { for (int tight_loop = 0; tight_loop < 10000; ++tight_loop) { @@ -49,9 +49,6 @@ void EmuThread::run() } } } - QMutexLocker lock(&mutex); - if (stop_run) - break; } render_window->moveContext(); @@ -65,11 +62,7 @@ void EmuThread::Stop() INFO_LOG(MASTER_LOG, "EmuThread::Stop called while emu thread wasn't running, returning..."); return; } - - { - QMutexLocker lock(&mutex); - stop_run = true; - } + stop_run = true; //core::g_state = core::SYS_DIE; @@ -94,7 +87,7 @@ void EmuThread::Stop() class GGLWidgetInternal : public QGLWidget { public: - GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) : QGLWidget(parent) + GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) : QGLWidget(fmt, parent) { parent_ = parent; } diff --git a/src/citra_qt/bootmanager.hxx b/src/citra_qt/bootmanager.hxx index 4c3e2f0a4..51cb781e9 100644 --- a/src/citra_qt/bootmanager.hxx +++ b/src/citra_qt/bootmanager.hxx @@ -1,6 +1,6 @@ -#include #include #include +#include #include "common/common.h" #include "common/emu_window.h" @@ -67,8 +67,7 @@ private: bool exec_cpu_step; bool cpu_running; - bool stop_run; - QMutex mutex; + std::atomic stop_run; GRenderWindow* render_window;