From ab5e6c665dd3f76ff92bb57e0798c2bdc84c9be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Sat, 3 Jan 2026 23:59:03 +0100 Subject: [PATCH] Document systemwide thread id change and the backwards compatibility macro BOOST_INTERPROCESS_USE_PTHREAD_AS_SYSTEMWIDE_THREAD_ID --- doc/interprocess.qbk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/interprocess.qbk b/doc/interprocess.qbk index bafdb65..efab1d6 100644 --- a/doc/interprocess.qbk +++ b/doc/interprocess.qbk @@ -6857,6 +6857,12 @@ thank them: * Segment managers in their `construct` methods * Allocators +* [*ABI breaking]: Some utilities like spin-based recursive mutexes needed to use a systemwide thread identifier. The method used for Unix systems + was based on pid_t+pthread_t identifiers, something incorrect (as pthread_t was not suppossed to identify a thread, even inside a process). + In this version, several Unix-like systems use a particular and correct global thread identifier (`gettid()` on Linux, + `pthread_getthreadid_np` on FreeBSD, `pthread_threadid_np` on MacOS, `_lwp_self` on NetBSD, `getthrid` on OpenBSD, `thr_self` on Solaris, + `GetCurrentThreadId` on Cygwin, `gettid` on QNX, etc...). + * Fixed bugs: * [@https://github.com/boostorg/interprocess/issues/242 GitHub #242 (['"Cygwin compatibility issues"])]. * [@https://github.com/boostorg/interprocess/issues/247 GitHub #247 (['"destruction of move-constructed map using private_adaptive_pool triggers Assertion"])].