From b2b05b6fbe98dc344c8498bb5c42a10aebc61c0e Mon Sep 17 00:00:00 2001 From: Brad Smith Date: Sun, 22 Mar 2026 00:12:47 -0400 Subject: [PATCH] Add thread id retrieval for FreeBSD/DragonFly, OpenBSD and NetBSD --- lib/multithreading.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/multithreading.c b/lib/multithreading.c index 2449f80..4a9cda6 100644 --- a/lib/multithreading.c +++ b/lib/multithreading.c @@ -144,6 +144,12 @@ int iscsi_mt_sem_wait(libiscsi_sem_t* sem) #include #include #include +#if defined(__FreeBSD__) || defined(__DragonFly__) +#include +#endif +#if defined(__NetBSD__) +#include +#endif iscsi_tid_t iscsi_mt_get_tid(void) { @@ -151,6 +157,15 @@ iscsi_tid_t iscsi_mt_get_tid(void) iscsi_tid_t tid; pthread_threadid_np(NULL, &tid); return tid; +#elif defined(__FreeBSD__) || defined(__DragonFly__) + int tid = pthread_getthreadid_np(); + return tid; +#elif defined(__OpenBSD__) + pid_t tid = getthrid(); + return tid; +#elif defined(__NetBSD__) + lwpid_t tid = _lwp_self(); + return tid; #elif defined(SYS_gettid) pid_t tid = syscall(SYS_gettid); return tid;