aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/citra_qt/bootmanager.cpp
diff options
context:
space:
mode:
authorGravatar Tony Wasserka <NeoBrainX@gmail.com>2014-10-25 18:02:26 +0200
committerGravatar Tony Wasserka <NeoBrainX@gmail.com>2014-12-09 16:37:34 +0100
commit2c71ec70527abd091d69f1fdd30aaf95d815214a (patch)
treed0e1f48b048f6d3ef801d0562bfcfe0fa11de6f1 /src/citra_qt/bootmanager.cpp
parent706f9c5574f74b018958477813495dd6e15bd00d (diff)
Pica/DebugUtils: Add breakpoint functionality.
Diffstat (limited to 'src/citra_qt/bootmanager.cpp')
-rw-r--r--src/citra_qt/bootmanager.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index 9a29f974..b53206be 100644
--- a/src/citra_qt/bootmanager.cpp
+++ b/src/citra_qt/bootmanager.cpp
@@ -14,6 +14,8 @@
#include "core/core.h"
#include "core/settings.h"
+#include "video_core/debug_utils/debug_utils.h"
+
#include "video_core/video_core.h"
#include "citra_qt/version.h"
@@ -65,14 +67,21 @@ void EmuThread::Stop()
}
stop_run = true;
+ // Release emu threads from any breakpoints, so that this doesn't hang forever.
+ Pica::g_debug_context->ClearBreakpoints();
+
//core::g_state = core::SYS_DIE;
- wait(500);
+ // TODO: Waiting here is just a bad workaround for retarded shutdown logic.
+ wait(1000);
if (isRunning())
{
WARN_LOG(MASTER_LOG, "EmuThread still running, terminating...");
quit();
- wait(1000);
+
+ // TODO: Waiting 50 seconds can be necessary if the logging subsystem has a lot of spam
+ // queued... This should be fixed.
+ wait(50000);
if (isRunning())
{
WARN_LOG(MASTER_LOG, "EmuThread STILL running, something is wrong here...");