From 1981cf8c0206657a16f73f48d43a313c65485d5e Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Thu, 7 Sep 2023 08:02:09 -0700 Subject: [PATCH] Fix GetTID() on FreeBSD https://github.com/abseil/abseil-cpp/issues/1518#issuecomment-1709098904 pointed out that the previous untested fix doesn't work because pthread_getthreadid_np() has a different signature on Darwin. Follow up to https://github.com/abseil/abseil-cpp/commit/b9707b7d7845f9710ae6d5906827b833fdcc2754 Fixes #1518 PiperOrigin-RevId: 563432451 Change-Id: Id0a9212e9c4413fa520a42934efaed2a06ca5dbc --- absl/base/internal/sysinfo.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/absl/base/internal/sysinfo.cc b/absl/base/internal/sysinfo.cc index 5b427fa5e98..79eaba3e51c 100644 --- a/absl/base/internal/sysinfo.cc +++ b/absl/base/internal/sysinfo.cc @@ -429,7 +429,7 @@ pid_t GetTID() { return tid; } -#elif defined(__APPLE__) || defined(__FreeBSD__) +#elif defined(__APPLE__) pid_t GetTID() { uint64_t tid; @@ -440,6 +440,10 @@ pid_t GetTID() { return static_cast(tid); } +#elif defined(__FreeBSD__) + +pid_t GetTID() { return static_cast(pthread_getthreadid_np()); } + #elif defined(__OpenBSD__) pid_t GetTID() { return getthrid(); }