On Linux, piglit_gettid() wraps the gettid() syscall. It returns 0 on unsupported systems.
This is useful for printing messages in multi-threaded tests. Signed-off-by: Chad Versace <[email protected]> --- tests/util/piglit-util.c | 17 +++++++++++++++++ tests/util/piglit-util.h | 9 ++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c index 1d0f393..ca7d4cd 100644 --- a/tests/util/piglit-util.c +++ b/tests/util/piglit-util.c @@ -28,12 +28,19 @@ #include <windows.h> #endif +#ifdef __linux__ +#include <unistd.h> +#include <sys/types.h> +#include <sys/syscall.h> +#endif + #include <assert.h> #include <math.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> +#include <inttypes.h> #ifdef PIGLIT_HAS_POSIX_CLOCK_MONOTONIC #include <time.h> @@ -663,3 +670,13 @@ piglit_run_selected_subtests(const struct piglit_subtest *all_subtests, return result; } + +uint64_t +piglit_gettid(void) +{ +#ifdef __linux__ + return syscall(SYS_gettid); +#else + return 0; +#endif +} diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h index a90f59f..0f25d67 100644 --- a/tests/util/piglit-util.h +++ b/tests/util/piglit-util.h @@ -250,7 +250,14 @@ piglit_parse_subtest_args(int *argc, char *argv[], const char ***out_selected_subtests, size_t *out_num_selected_subtests); - +/** + * \brief Return the thread id. + * + * On Linux, this functions wraps the gettid() syscall. + * On unsupported systems, this returns 0. + */ +uint64_t +piglit_gettid(void); #ifdef __cplusplus } /* end extern "C" */ -- 1.8.5.3 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
