Pass format to the QGLWidget and use atomic instead of mutex.

merge-requests/60/head
Sacha 2014-08-25 03:42:52 +07:00
parent b044510fa9
commit 1b1205cf73
2 changed files with 5 additions and 13 deletions

@ -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;
}

@ -1,6 +1,6 @@
#include <QMutex>
#include <QThread>
#include <QGLWidget>
#include <atomic>
#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<bool> stop_run;
GRenderWindow* render_window;