Skip to content

Commit 0ae2bb5

Browse files
committed
Add utils_gettid()
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent cd8794b commit 0ae2bb5

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

src/utils/utils_common.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ void util_align_ptr_size(void **ptr, size_t *size, size_t alignment);
7474
// get the current process ID
7575
int utils_getpid(void);
7676

77+
// get the current thread ID
78+
int utils_gettid(void);
79+
7780
#ifdef __cplusplus
7881
}
7982
#endif

src/utils/utils_posix_common.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,16 @@ size_t util_get_page_size(void) {
2525
}
2626

2727
int utils_getpid(void) { return getpid(); }
28+
29+
int utils_gettid(void) {
30+
#ifdef __APPLE__
31+
uint64_t tid64;
32+
pthread_threadid_np(NULL, &tid64);
33+
return (int)tid64;
34+
#else
35+
// Some older OSes does not have
36+
// the gettid() function implemented,
37+
// so let's use the syscall instead:
38+
return syscall(SYS_gettid);
39+
#endif
40+
}

src/utils/utils_windows_common.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <windows.h>
1111

1212
#include <processenv.h>
13+
#include <processthreadsapi.h>
1314

1415
#include "utils_concurrency.h"
1516

@@ -28,4 +29,7 @@ size_t util_get_page_size(void) {
2829
util_init_once(&Page_size_is_initialized, _util_get_page_size);
2930
return Page_size;
3031
}
32+
3133
int utils_getpid(void) { return GetCurrentProcessId(); }
34+
35+
int utils_gettid(void) { return GetCurrentThreadId(); }

0 commit comments

Comments
 (0)