From 3b9b8f5f6d1b99af43e95ec0868404e552a85b73 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Thu, 19 Mar 2015 22:26:11 +0000 Subject: [PATCH] third_party/threads: Use PTHREAD_MUTEX_RECURSIVE by default PTHREAD_MUTEX_RECURSIVE_NP was used for compatibility with old glibc. Although due to the_GNU_SOURCES define the portable, PTHREAD_MUTEX_RECURSIVE will be available for Linuxes since at least 1998. Simplify things giving us compatibility with musl which apparently does not provide the non-portable define. Inspired by almost identical commit in mesa aead7fe2e2b(c11/threads: Use PTHREAD_MUTEX_RECURSIVE by default) by Felix Janda. Signed-off-by: Emil Velikov Reviewed-by: Chad Versace --- Upstream-Status: Backport third_party/threads/threads_posix.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/third_party/threads/threads_posix.c b/third_party/threads/threads_posix.c index 5835e43..e122bf9 100644 --- a/third_party/threads/threads_posix.c +++ b/third_party/threads/threads_posix.c @@ -26,6 +26,9 @@ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ + +#define _GNU_SOURCE + #include #ifndef assert #include @@ -150,13 +153,8 @@ int mtx_init(mtx_t *mtx, int type) && type != (mtx_try|mtx_recursive)) return thrd_error; pthread_mutexattr_init(&attr); - if ((type & mtx_recursive) != 0) { -#if defined(__linux__) || defined(__linux) - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); -#else + if ((type & mtx_recursive) != 0) pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); -#endif - } pthread_mutex_init(mtx, &attr); pthread_mutexattr_destroy(&attr); return thrd_success; -- 2.5.2