mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 01:22:04 +00:00
Support for Mac OS and BSD
This commit is contained in:
parent
d11f3cb78f
commit
55b83dbcee
@ -1,13 +1,26 @@
|
||||
#include <unistd.h>
|
||||
#include <syscall.h>
|
||||
#include <common/getThreadId.h>
|
||||
|
||||
#if OS_LINUX
|
||||
#include <unistd.h>
|
||||
#include <syscall.h>
|
||||
#else
|
||||
#include <pthread.h>
|
||||
#include <stdexcept>
|
||||
#endif
|
||||
|
||||
|
||||
static thread_local uint64_t current_tid = 0;
|
||||
uint64_t getThreadId()
|
||||
{
|
||||
if (!current_tid)
|
||||
{
|
||||
#if OS_LINUX
|
||||
current_tid = syscall(SYS_gettid); /// This call is always successful. - man gettid
|
||||
#else
|
||||
if (0 != pthread_threadid_np(nullptr, ¤t_tid)
|
||||
throw std::logic_error("pthread_threadid_np returned error");
|
||||
#endif
|
||||
}
|
||||
|
||||
return current_tid;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user