configure: Distinguish glibc and NetBSD pthread_setname_np() variants.
[sliver-openvswitch.git] / lib / util.c
index c69d7d1..1751c6f 100644 (file)
@@ -395,11 +395,19 @@ get_subprogram_name(void)
 }
 
 /* Sets 'name' as the name of the currently running thread or process.  (This
- * appears in log messages.) */
+ * appears in log messages and may also be visible in system process listings
+ * and debuggers.) */
 void
 set_subprogram_name(const char *name)
 {
     free(subprogram_name_set(xstrdup(name)));
+#if HAVE_GLIBC_PTHREAD_SETNAME_NP
+    pthread_setname_np(pthread_self(), name);
+#elif HAVE_NETBSD_PTHREAD_SETNAME_NP
+    pthread_setname_np(pthread_self(), "%s", name);
+#elif HAVE_PTHREAD_SET_NAME_NP
+    pthread_set_name_np(pthread_self(), name);
+#endif
 }
 
 /* Returns a pointer to a string describing the program version.  The