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;