From d36864500f56881756040ee050e3ac248d372ea8 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Mon, 20 Jan 2025 21:40:28 +0100 Subject: [PATCH] vkd3d-common: Write a thread id in the log on macOS too. --- configure.ac | 1 + libs/vkd3d-common/debug.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/configure.ac b/configure.ac index 495ee3cd..fb57e1a4 100644 --- a/configure.ac +++ b/configure.ac @@ -173,6 +173,7 @@ VKD3D_CHECK_FUNC([HAVE_SYNC_ADD_AND_FETCH], [__sync_add_and_fetch], [__sync_add_ VKD3D_CHECK_FUNC([HAVE_SYNC_BOOL_COMPARE_AND_SWAP], [__sync_bool_compare_and_swap], [__sync_bool_compare_and_swap((int *)0, 0, 0)]) VKD3D_CHECK_FUNC([HAVE_ATOMIC_EXCHANGE_N], [__atomic_exchange_n], [__atomic_exchange_n((int *)0, 0, 0)]) AC_CHECK_FUNCS([gettid]) +AC_CHECK_FUNCS([pthread_threadid_np]) dnl Makefiles case $host_os in diff --git a/libs/vkd3d-common/debug.c b/libs/vkd3d-common/debug.c index 9a92f0ea..32862024 100644 --- a/libs/vkd3d-common/debug.c +++ b/libs/vkd3d-common/debug.c @@ -97,6 +97,17 @@ static void vkd3d_dbg_output(const char *fmt, ...) va_end(args); } +#if HAVE_PTHREAD_THREADID_NP +static uint64_t get_pthread_threadid(void) +{ + uint64_t thread_id; + + pthread_threadid_np(NULL, &thread_id); + + return thread_id; +} +#endif + void vkd3d_dbg_printf(enum vkd3d_dbg_level level, const char *function, const char *fmt, ...) { va_list args; @@ -108,6 +119,8 @@ void vkd3d_dbg_printf(enum vkd3d_dbg_level level, const char *function, const ch vkd3d_dbg_output("vkd3d:%04lx:%s:%s ", GetCurrentThreadId(), debug_level_names[level], function); #elif HAVE_GETTID vkd3d_dbg_output("vkd3d:%u:%s:%s ", gettid(), debug_level_names[level], function); +#elif HAVE_PTHREAD_THREADID_NP + vkd3d_dbg_output("vkd3d:%"PRIu64":%s:%s ", get_pthread_threadid(), debug_level_names[level], function); #else vkd3d_dbg_output("vkd3d:%s:%s ", debug_level_names[level], function); #endif