diff --git a/include/spdlog/details/os.h b/include/spdlog/details/os.h index 388cb629..ccadaea3 100644 --- a/include/spdlog/details/os.h +++ b/include/spdlog/details/os.h @@ -38,8 +38,10 @@ #include #include -#else +#elif __FreeBSD__ +#include //Use thr_self() syscall under FreeBSD to get thread id +#else #include #endif @@ -263,10 +265,15 @@ inline size_t thread_id() # define SYS_gettid __NR_gettid # endif return static_cast(syscall(SYS_gettid)); -#else //Default to standard C++11 (OSX and other Unix) +#elif __FreeBSD__ + long tid; + thr_self(&tid); + return static_cast(tid); +#else //Default to standard C++11 (OSX and other Unix) return static_cast(std::hash()(std::this_thread::get_id())); #endif + }