mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-23091: perfschema Add support for OpenBSD's getthrid() to retrieve the thread id
This commit is contained in:
@@ -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,6 +67,10 @@ 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();
|
||||
@@ -74,6 +78,7 @@ static inline my_thread_os_id_t my_thread_os_id()
|
||||
/* 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
|
||||
|
Reference in New Issue
Block a user