summaryrefslogtreecommitdiff
path: root/util/locks.h
diff options
context:
space:
mode:
Diffstat (limited to 'util/locks.h')
-rw-r--r--util/locks.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/util/locks.h b/util/locks.h
index eb698cb759aa..9b1b10b3756f 100644
--- a/util/locks.h
+++ b/util/locks.h
@@ -178,6 +178,30 @@ typedef pthread_key_t ub_thread_key_type;
#define ub_thread_key_set(key, v) LOCKRET(pthread_setspecific(key, v))
#define ub_thread_key_get(key) pthread_getspecific(key)
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+#if defined(HAVE_PTHREAD_SET_NAME_NP)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_set_name_np(thread, name);\
+ } while(0)
+#elif defined(HAVE_PTHREAD_SETNAME_NP1)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_setname_np(name); \
+ } while(0)
+#elif defined(HAVE_PTHREAD_SETNAME_NP3)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_setname_np(thread, name, NULL); \
+ } while(0)
+#elif defined(HAVE_PTHREAD_SETNAME_NP)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_setname_np(thread, name); \
+ } while(0)
+#else
+ #define ub_thread_setname(thread, name) /* nop */
+#endif /* HAVE_PTHREAD_SET_NAME_NP */
+
+
#else /* we do not HAVE_PTHREAD */
#ifdef HAVE_SOLARIS_THREADS
@@ -215,6 +239,7 @@ typedef thread_key_t ub_thread_key_type;
#define ub_thread_key_create(key, f) LOCKRET(thr_keycreate(key, f))
#define ub_thread_key_set(key, v) LOCKRET(thr_setspecific(key, v))
void* ub_thread_key_get(ub_thread_key_type key);
+#define ub_thread_setname(thread, name) /* nop */
#else /* we do not HAVE_SOLARIS_THREADS and no PTHREADS */
@@ -253,6 +278,7 @@ typedef DWORD ub_thread_key_type;
void ub_thread_key_create(ub_thread_key_type* key, void* f);
void ub_thread_key_set(ub_thread_key_type key, void* v);
void* ub_thread_key_get(ub_thread_key_type key);
+#define ub_thread_setname(thread, name) /* nop */
#else /* we do not HAVE_SOLARIS_THREADS, PTHREADS or WINDOWS_THREADS */
@@ -294,6 +320,7 @@ typedef void* ub_thread_key_type;
#define ub_thread_key_create(key, f) (*(key)) = NULL
#define ub_thread_key_set(key, v) (key) = (v)
#define ub_thread_key_get(key) (key)
+#define ub_thread_setname(thread, name) /* nop */
#endif /* HAVE_WINDOWS_THREADS */
#endif /* HAVE_SOLARIS_THREADS */