Skip to content

Commit ab5e6c6

Browse files
committed
Document systemwide thread id change and the backwards compatibility macro BOOST_INTERPROCESS_USE_PTHREAD_AS_SYSTEMWIDE_THREAD_ID
1 parent bfce9f1 commit ab5e6c6

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

doc/interprocess.qbk

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6857,6 +6857,12 @@ thank them:
68576857
* Segment managers in their `construct` methods
68586858
* Allocators
68596859

6860+
* [*ABI breaking]: Some utilities like spin-based recursive mutexes needed to use a systemwide thread identifier. The method used for Unix systems
6861+
was based on pid_t+pthread_t identifiers, something incorrect (as pthread_t was not suppossed to identify a thread, even inside a process).
6862+
In this version, several Unix-like systems use a particular and correct global thread identifier (`gettid()` on Linux,
6863+
`pthread_getthreadid_np` on FreeBSD, `pthread_threadid_np` on MacOS, `_lwp_self` on NetBSD, `getthrid` on OpenBSD, `thr_self` on Solaris,
6864+
`GetCurrentThreadId` on Cygwin, `gettid` on QNX, etc...).
6865+
68606866
* Fixed bugs:
68616867
* [@https://github.com/boostorg/interprocess/issues/242 GitHub #242 (['"Cygwin compatibility issues"])].
68626868
* [@https://github.com/boostorg/interprocess/issues/247 GitHub #247 (['"destruction of move-constructed map using private_adaptive_pool triggers Assertion"])].

0 commit comments

Comments
 (0)