Skip to content

Commit

Permalink
perfschema: native type for my_thread_os_id_t
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
grooverdan committed Jun 1, 2021
1 parent 90adf2a commit 0d44792
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions storage/perfschema/my_thread.h
Expand Up @@ -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

Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 0d44792

Please sign in to comment.