diff options
| author | 2014-08-25 03:42:52 +1000 | |
|---|---|---|
| committer | 2014-08-25 03:42:52 +1000 | |
| commit | 1b1205cf739d0913dd474779245fd59dccbf2fcf (patch) | |
| tree | 64505f9f1dbe1d10b8b15661db8f2dc191d8ca98 /src/citra_qt/bootmanager.cpp | |
| parent | Fix EmuThread loop by ensuring it exits properly. (diff) | |
| download | yuzu-1b1205cf739d0913dd474779245fd59dccbf2fcf.tar.gz yuzu-1b1205cf739d0913dd474779245fd59dccbf2fcf.tar.xz yuzu-1b1205cf739d0913dd474779245fd59dccbf2fcf.zip | |
Pass format to the QGLWidget and use atomic instead of mutex.
Diffstat (limited to 'src/citra_qt/bootmanager.cpp')
| -rw-r--r-- | src/citra_qt/bootmanager.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
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) | |||
| 33 | void EmuThread::run() | 33 | void EmuThread::run() |
| 34 | { | 34 | { |
| 35 | stop_run = false; | 35 | stop_run = false; |
| 36 | while (true) | 36 | while (!stop_run) |
| 37 | { | 37 | { |
| 38 | for (int tight_loop = 0; tight_loop < 10000; ++tight_loop) | 38 | for (int tight_loop = 0; tight_loop < 10000; ++tight_loop) |
| 39 | { | 39 | { |
| @@ -49,9 +49,6 @@ void EmuThread::run() | |||
| 49 | } | 49 | } |
| 50 | } | 50 | } |
| 51 | } | 51 | } |
| 52 | QMutexLocker lock(&mutex); | ||
| 53 | if (stop_run) | ||
| 54 | break; | ||
| 55 | } | 52 | } |
| 56 | render_window->moveContext(); | 53 | render_window->moveContext(); |
| 57 | 54 | ||
| @@ -65,11 +62,7 @@ void EmuThread::Stop() | |||
| 65 | INFO_LOG(MASTER_LOG, "EmuThread::Stop called while emu thread wasn't running, returning..."); | 62 | INFO_LOG(MASTER_LOG, "EmuThread::Stop called while emu thread wasn't running, returning..."); |
| 66 | return; | 63 | return; |
| 67 | } | 64 | } |
| 68 | 65 | stop_run = true; | |
| 69 | { | ||
| 70 | QMutexLocker lock(&mutex); | ||
| 71 | stop_run = true; | ||
| 72 | } | ||
| 73 | 66 | ||
| 74 | //core::g_state = core::SYS_DIE; | 67 | //core::g_state = core::SYS_DIE; |
| 75 | 68 | ||
| @@ -94,7 +87,7 @@ void EmuThread::Stop() | |||
| 94 | class GGLWidgetInternal : public QGLWidget | 87 | class GGLWidgetInternal : public QGLWidget |
| 95 | { | 88 | { |
| 96 | public: | 89 | public: |
| 97 | GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) : QGLWidget(parent) | 90 | GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) : QGLWidget(fmt, parent) |
| 98 | { | 91 | { |
| 99 | parent_ = parent; | 92 | parent_ = parent; |
| 100 | } | 93 | } |