From 4469a9a05f4be9a4c46f36de66398eb61f901c6e Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Sat, 13 Jun 2015 01:41:07 -0700 Subject: [PATCH] All: Threads are now named --- CHANGES | 1 + src/gba/supervisor/thread.c | 2 ++ src/platform/qt/DisplayGL.cpp | 1 + src/platform/qt/DisplayGL.h | 1 - src/platform/qt/GameController.cpp | 1 + src/util/threading.h | 14 ++++++++++++++ 6 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index f7332d50d..dabbccea9 100644 --- a/CHANGES +++ b/CHANGES @@ -69,6 +69,7 @@ Misc: - GBA Thread: Split GBASync into a separate file - SDL: Properly check for initialization - SDL: Clean up initialization functions + - All: Threads are now named 0.2.1: (2015-05-13) Bugfixes: diff --git a/src/gba/supervisor/thread.c b/src/gba/supervisor/thread.c index c1afc20e1..b5a1fad42 100644 --- a/src/gba/supervisor/thread.c +++ b/src/gba/supervisor/thread.c @@ -110,6 +110,8 @@ static THREAD_ENTRY _GBAThreadRun(void* context) { struct GBARRContext* movie = 0; int numComponents = GBA_COMPONENT_MAX; + ThreadSetName("CPU Thread"); + #if !defined(_WIN32) && defined(USE_PTHREADS) sigset_t signals; sigemptyset(&signals); diff --git a/src/platform/qt/DisplayGL.cpp b/src/platform/qt/DisplayGL.cpp index 8dd17b8b1..94f80b1ff 100644 --- a/src/platform/qt/DisplayGL.cpp +++ b/src/platform/qt/DisplayGL.cpp @@ -38,6 +38,7 @@ void DisplayGL::startDrawing(GBAThread* thread) { m_painter->resize(size()); m_gl->move(0, 0); m_drawThread = new QThread(this); + m_drawThread->setObjectName("Painter Thread"); m_gl->context()->doneCurrent(); m_gl->context()->moveToThread(m_drawThread); m_painter->moveToThread(m_drawThread); diff --git a/src/platform/qt/DisplayGL.h b/src/platform/qt/DisplayGL.h index a4007a6c6..edf84dcf3 100644 --- a/src/platform/qt/DisplayGL.h +++ b/src/platform/qt/DisplayGL.h @@ -94,7 +94,6 @@ private: QPainter m_painter; QStaticText m_message; QGLWidget* m_gl; - QThread* m_thread; bool m_active; QTimer m_messageTimer; GBAThread* m_context; diff --git a/src/platform/qt/GameController.cpp b/src/platform/qt/GameController.cpp index 4ac161279..5b0b0197a 100644 --- a/src/platform/qt/GameController.cpp +++ b/src/platform/qt/GameController.cpp @@ -157,6 +157,7 @@ GameController::GameController(QObject* parent) }); m_rewindTimer.setInterval(100); + m_audioThread->setObjectName("Audio Thread"); m_audioThread->start(QThread::TimeCriticalPriority); m_audioProcessor->moveToThread(m_audioThread); connect(this, SIGNAL(gameStarted(GBAThread*)), m_audioProcessor, SLOT(start())); diff --git a/src/util/threading.h b/src/util/threading.h index 5d253801e..18240e639 100644 --- a/src/util/threading.h +++ b/src/util/threading.h @@ -75,6 +75,16 @@ static inline int ThreadJoin(Thread thread) { return pthread_join(thread, 0); } +static inline int ThreadSetName(const char* name) { +#ifdef __APPLE__ + return pthread_setname_np(name); +#elif defined(__FreeBSD__) + return pthread_set_name_np(pthread_self(), name); +#else + return pthread_setname_np(pthread_self(), name); +#endif +} + #elif _WIN32 #define _WIN32_WINNT 0x0600 #include @@ -143,6 +153,10 @@ static inline int ThreadJoin(Thread thread) { } return 0; } + +static inline int ThreadSetName(const char* name) { + return -1; +} #else #define DISABLE_THREADING #endif