I think the better word here is recursive mutex, not reentrant mutex. Because contrary to the implied claim on that page,<p><pre><code> "The basic pthread mutex leaves a lot to wish for. Support
for reentrancy would allow varying lock granularity on the
call site."
</code></pre>
pthreads provides recursive mutexes via the PTHREAD_MUTEX_RECURSIVE mutex type specifier. It was in the 2004 POSIX specification as an XSI extension, but moved to Base in the 2008 specification. No environment is certified to POSIX 2008, AFAIK. Linux/glibc and linux/musl are the closest, I think. But recursive mutexes, and specifically PTHREAD_MUTEX_RECURSIVE, are supported everywhere I've checked, including all the BSDs, AIX, and Solaris.