Use prctl to name thread on Linux
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jan 2017 08:29:52 +0000 (08:29 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jan 2017 08:29:52 +0000 (08:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=166663

Reviewed by Michael Catanzaro.

It is quite useful if we can name threads. This name will be shown in GDB.
While macOS uses pthread_setname_np, we can use prctl on Linux.

* wtf/ThreadingPthreads.cpp:
(WTF::initializeCurrentThreadInternal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@210272 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/ThreadingPthreads.cpp

index 3885848..ebada64 100644 (file)
@@ -1,5 +1,18 @@
 2017-01-03  Yusuke Suzuki  <utatane.tea@gmail.com>
 
+        Use prctl to name thread on Linux
+        https://bugs.webkit.org/show_bug.cgi?id=166663
+
+        Reviewed by Michael Catanzaro.
+
+        It is quite useful if we can name threads. This name will be shown in GDB.
+        While macOS uses pthread_setname_np, we can use prctl on Linux.
+
+        * wtf/ThreadingPthreads.cpp:
+        (WTF::initializeCurrentThreadInternal):
+
+2017-01-03  Yusuke Suzuki  <utatane.tea@gmail.com>
+
         WorkQueueGeneric's platformInvalidate() can deadlock when called on the RunLoop's thread
         https://bugs.webkit.org/show_bug.cgi?id=166645
 
index 705f36d..be1d826 100644 (file)
 #include <sys/time.h>
 #endif
 
+#if OS(LINUX)
+#include <sys/prctl.h>
+#endif
+
 namespace WTF {
 
 class PthreadState {
@@ -192,6 +196,8 @@ void initializeCurrentThreadInternal(const char* threadName)
 {
 #if HAVE(PTHREAD_SETNAME_NP)
     pthread_setname_np(threadName);
+#elif OS(LINUX)
+    prctl(PR_SET_NAME, threadName);
 #else
     UNUSED_PARAM(threadName);
 #endif