Skip to content
Permalink
Browse files
MDEV-23091: perfschema Add support for OpenBSD's getthrid() to retrie…
…ve the thread id
  • Loading branch information
brad0 authored and grooverdan committed Aug 28, 2020
1 parent fe5dbfe commit 482cf29
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
@@ -298,6 +298,16 @@ int main(int ac, char **av)
}"
HAVE_SYS_GETTID)

# Check for getthrid()
CHECK_C_SOURCE_COMPILES("
#include <unistd.h>
int main(int ac, char **av)
{
unsigned long long tid = getthrid();
return (tid != 0 ? 0 : 1);
}"
HAVE_GETTHRID)

# Check for pthread_getthreadid_np()
CHECK_C_SOURCE_COMPILES("
#include <pthread_np.h>
@@ -67,13 +67,18 @@ static inline my_thread_os_id_t my_thread_os_id()
/* FreeBSD 10.2 */
return pthread_getthreadid_np();
#else
#ifdef HAVE_GETTHRID
/* OpenBSD */
return getthrid();
#else
#ifdef HAVE_INTEGER_PTHREAD_SELF
/* Unknown platform, fallback. */
return pthread_self();
#else
/* Feature not available. */
return 0;
#endif /* HAVE_INTEGER_PTHREAD_SELF */
#endif /* HAVE_GETTHRID */
#endif /* HAVE_PTHREAD_GETTHREADID_NP */
#endif /* _WIN32 */
#endif /* HAVE_SYS_GETTID */
@@ -1,4 +1,5 @@
#cmakedefine HAVE_PTHREAD_THREADID_NP 1
#cmakedefine HAVE_SYS_GETTID 1
#cmakedefine HAVE_GETTHRID 1
#cmakedefine HAVE_PTHREAD_GETTHREADID_NP 1
#cmakedefine HAVE_INTEGER_PTHREAD_SELF 1

0 comments on commit 482cf29

Please sign in to comment.