From 0d44792a835128a83ff07f14dbbcdd621df9f7da Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Wed, 26 May 2021 10:23:43 +1000 Subject: [PATCH] perfschema: native type for my_thread_os_id_t Though these will all get case to unsigned long long where it is populated into the perfschema's BIGINT type. Use uintptr_t for NetBSD per Nia Alarie's original #1836. --- storage/perfschema/my_thread.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/storage/perfschema/my_thread.h b/storage/perfschema/my_thread.h index 7f6b1624016..5ddea9b1303 100644 --- a/storage/perfschema/my_thread.h +++ b/storage/perfschema/my_thread.h @@ -17,7 +17,17 @@ typedef pthread_key_t thread_local_key_t; typedef pthread_t my_thread_handle; typedef pthread_attr_t my_thread_attr_t; +#if defined(HAVE_PTHREAD_THREADID_NP) || defined(HAVE_GETTID) || defined(HAVE_SYS_GETTID) || defined(HAVE_GETTHRID) +typedef pid_t my_thread_os_id_t; +#elif defined(_WIN32) +typedef uint32 my_thread_os_id_t; +#elif defined(HAVE_PTHREAD_GETTHREADID_NP) +typedef int my_thread_os_id_t; +#elif defined(HAVE_INTEGER_PTHREAD_SELF) +typedef uintptr_t my_thread_os_id_t; +#else typedef unsigned long long my_thread_os_id_t; +#endif #define LOCK_plugin_delete LOCK_plugin @@ -74,8 +84,8 @@ static inline my_thread_os_id_t my_thread_os_id() return getthrid(); #else #ifdef HAVE_INTEGER_PTHREAD_SELF - /* Unknown platform, fallback. */ - return (unsigned long long)pthread_self(); + /* NetBSD, and perhaps something else, fallback. */ + return (my_thread_os_id_t) pthread_self(); #else /* Feature not available. */ return 0;