diff options
Diffstat (limited to 'tests/pthread.in.h')
-rw-r--r-- | tests/pthread.in.h | 2022 |
1 files changed, 0 insertions, 2022 deletions
diff --git a/tests/pthread.in.h b/tests/pthread.in.h deleted file mode 100644 index cd705fbd..00000000 --- a/tests/pthread.in.h +++ /dev/null @@ -1,2022 +0,0 @@ -/* Implement the most essential subset of POSIX 1003.1-2008 pthread.h. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ - -/* Written by Paul Eggert, Glen Lenker, and Bruno Haible. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif -@PRAGMA_COLUMNS@ - -#if defined _GL_ALREADY_INCLUDING_PTHREAD_H -/* Special invocation convention: - On Android, we have a sequence of nested includes - <pthread.h> -> <time.h> -> <sys/time.h> -> <sys/select.h> -> - <signal.h> -> <pthread.h>. - In this situation, PTHREAD_COND_INITIALIZER is not yet defined, - therefore we should not attempt to define PTHREAD_MUTEX_NORMAL etc. */ - -#@INCLUDE_NEXT@ @NEXT_PTHREAD_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _@GUARD_PREFIX@_PTHREAD_H_ - -#if @HAVE_PTHREAD_H@ - -# define _GL_ALREADY_INCLUDING_PTHREAD_H - -/* The include_next requires a split double-inclusion guard. */ -# @INCLUDE_NEXT@ @NEXT_PTHREAD_H@ - -# undef _GL_ALREADY_INCLUDING_PTHREAD_H - -#endif - -#ifndef _@GUARD_PREFIX@_PTHREAD_H_ -#define _@GUARD_PREFIX@_PTHREAD_H_ - -/* This file uses _Noreturn, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#define __need_system_stdlib_h -#include <stdlib.h> -#undef __need_system_stdlib_h - - -/* The pthreads-win32 <pthread.h> defines a couple of broken macros. */ -#undef asctime_r -#undef ctime_r -#undef gmtime_r -#undef localtime_r -#undef rand_r -#undef strtok_r - -#include <errno.h> -#include <sched.h> -#include <sys/types.h> -#include <time.h> - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ - -/* The definition of _Noreturn is copied here. */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ - -/* The definition of _GL_WARN_ON_USE is copied here. */ - -/* =========== Thread types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if @GNULIB_PTHREAD_THREAD@ -# include "windows-thread.h" -# if @HAVE_PTHREAD_T@ -# define pthread_t rpl_pthread_t -# define pthread_attr_t rpl_pthread_attr_t -# endif -# if !GNULIB_defined_pthread_thread_types -typedef glwthread_thread_t pthread_t; -typedef unsigned int pthread_attr_t; -# define GNULIB_defined_pthread_thread_types 1 -# endif -# else -# if @HAVE_PTHREAD_T@ -# define pthread_t rpl_pthread_t -# define pthread_attr_t rpl_pthread_attr_t -# endif -# if !GNULIB_defined_pthread_thread_types -typedef int pthread_t; -typedef unsigned int pthread_attr_t; -# define GNULIB_defined_pthread_thread_types 1 -# endif -# endif -# undef PTHREAD_CREATE_JOINABLE -# undef PTHREAD_CREATE_DETACHED -# define PTHREAD_CREATE_JOINABLE 0 -# define PTHREAD_CREATE_DETACHED 1 -#else -# if !@HAVE_PTHREAD_T@ -# if !GNULIB_defined_pthread_thread_types -typedef int pthread_t; -typedef unsigned int pthread_attr_t; -# define GNULIB_defined_pthread_thread_types 1 -# endif -# endif -# if !@HAVE_PTHREAD_CREATE_DETACHED@ -# define PTHREAD_CREATE_JOINABLE 0 -# define PTHREAD_CREATE_DETACHED 1 -# endif -#endif - -/* =========== Once-only control (initialization) types and macros ========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if @GNULIB_PTHREAD_ONCE@ -# include "windows-once.h" -# if @HAVE_PTHREAD_T@ -# define pthread_once_t rpl_pthread_once_t -# endif -# if !GNULIB_defined_pthread_once_types -typedef glwthread_once_t pthread_once_t; -# define GNULIB_defined_pthread_once_types 1 -# endif -# undef PTHREAD_ONCE_INIT -# define PTHREAD_ONCE_INIT GLWTHREAD_ONCE_INIT -# else -# if @HAVE_PTHREAD_T@ -# define pthread_once_t rpl_pthread_once_t -# endif -# if !GNULIB_defined_pthread_once_types -typedef int pthread_once_t; -# define GNULIB_defined_pthread_once_types 1 -# endif -# undef PTHREAD_ONCE_INIT -# define PTHREAD_ONCE_INIT { 0 } -# endif -#else -# if !@HAVE_PTHREAD_T@ -# if !GNULIB_defined_pthread_once_types -typedef int pthread_once_t; -# define GNULIB_defined_pthread_once_types 1 -# endif -# undef PTHREAD_ONCE_INIT -# define PTHREAD_ONCE_INIT { 0 } -# endif -#endif - -/* =========== Mutex types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if @GNULIB_PTHREAD_MUTEX@ -# include "windows-timedmutex.h" -# include "windows-timedrecmutex.h" -# if @HAVE_PTHREAD_T@ -# define pthread_mutex_t rpl_pthread_mutex_t -# define pthread_mutexattr_t rpl_pthread_mutexattr_t -# endif -# if !GNULIB_defined_pthread_mutex_types -typedef struct - { - int type; - union - { - glwthread_timedmutex_t u_timedmutex; - glwthread_timedrecmutex_t u_timedrecmutex; - } - u; - } - pthread_mutex_t; -typedef unsigned int pthread_mutexattr_t; -# define GNULIB_defined_pthread_mutex_types 1 -# endif -# undef PTHREAD_MUTEX_INITIALIZER -# define PTHREAD_MUTEX_INITIALIZER { 1, { GLWTHREAD_TIMEDMUTEX_INIT } } -# else -# if @HAVE_PTHREAD_T@ -# define pthread_mutex_t rpl_pthread_mutex_t -# define pthread_mutexattr_t rpl_pthread_mutexattr_t -# endif -# if !GNULIB_defined_pthread_mutex_types -typedef int pthread_mutex_t; -typedef unsigned int pthread_mutexattr_t; -# define GNULIB_defined_pthread_mutex_types 1 -# endif -# undef PTHREAD_MUTEX_INITIALIZER -# define PTHREAD_MUTEX_INITIALIZER { 0 } -# endif -# undef PTHREAD_MUTEX_DEFAULT -# undef PTHREAD_MUTEX_NORMAL -# undef PTHREAD_MUTEX_ERRORCHECK -# undef PTHREAD_MUTEX_RECURSIVE -# define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL -# define PTHREAD_MUTEX_NORMAL 0 -# define PTHREAD_MUTEX_ERRORCHECK 1 -# define PTHREAD_MUTEX_RECURSIVE 2 -# undef PTHREAD_MUTEX_STALLED -# undef PTHREAD_MUTEX_ROBUST -# define PTHREAD_MUTEX_STALLED 0 -# define PTHREAD_MUTEX_ROBUST 1 -#else -# if !@HAVE_PTHREAD_T@ -# if !GNULIB_defined_pthread_mutex_types -typedef int pthread_mutex_t; -typedef unsigned int pthread_mutexattr_t; -# define GNULIB_defined_pthread_mutex_types 1 -# endif -# undef PTHREAD_MUTEX_INITIALIZER -# define PTHREAD_MUTEX_INITIALIZER { 0 } -# endif -# if !@HAVE_PTHREAD_MUTEX_RECURSIVE@ -# define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL -# define PTHREAD_MUTEX_NORMAL 0 -# define PTHREAD_MUTEX_ERRORCHECK 1 -# define PTHREAD_MUTEX_RECURSIVE 2 -# endif -# if !@HAVE_PTHREAD_MUTEX_ROBUST@ -# define PTHREAD_MUTEX_STALLED 0 -# define PTHREAD_MUTEX_ROBUST 1 -# endif -#endif - -/* =========== Read-write lock types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if @GNULIB_PTHREAD_RWLOCK@ -# include "windows-timedrwlock.h" -# if @HAVE_PTHREAD_T@ -# define pthread_rwlock_t rpl_pthread_rwlock_t -# define pthread_rwlockattr_t rpl_pthread_rwlockattr_t -# endif -# if !GNULIB_defined_pthread_rwlock_types -typedef glwthread_timedrwlock_t pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER GLWTHREAD_TIMEDRWLOCK_INIT -# else -# if @HAVE_PTHREAD_T@ -# define pthread_rwlock_t rpl_pthread_rwlock_t -# define pthread_rwlockattr_t rpl_pthread_rwlockattr_t -# endif -# if !GNULIB_defined_pthread_rwlock_types -typedef int pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER { 0 } -# endif -#elif @GNULIB_PTHREAD_RWLOCK@ && @REPLACE_PTHREAD_RWLOCK_INIT@ /* i.e. PTHREAD_RWLOCK_UNIMPLEMENTED */ -# if @HAVE_PTHREAD_T@ -# define pthread_rwlock_t rpl_pthread_rwlock_t -# define pthread_rwlockattr_t rpl_pthread_rwlockattr_t -# endif -# if !GNULIB_defined_pthread_rwlock_types -typedef struct - { - pthread_mutex_t lock; /* protects the remaining fields */ - pthread_cond_t waiting_readers; /* waiting readers */ - pthread_cond_t waiting_writers; /* waiting writers */ - unsigned int waiting_writers_count; /* number of waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER \ - { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } -#else -# if @HAVE_PTHREAD_T@ -# if !defined PTHREAD_RWLOCK_INITIALIZER && defined PTHREAD_RWLOCK_INITIALIZER_NP /* z/OS */ -# define PTHREAD_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER_NP -# endif -# else -# if !GNULIB_defined_pthread_rwlock_types -typedef int pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER { 0 } -# endif -#endif - -/* =========== Condition variable types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if @GNULIB_PTHREAD_COND@ -# include "windows-cond.h" -# if @HAVE_PTHREAD_T@ -# define pthread_cond_t rpl_pthread_cond_t -# define pthread_condattr_t rpl_pthread_condattr_t -# endif -# if !GNULIB_defined_pthread_cond_types -typedef glwthread_cond_t pthread_cond_t; -typedef unsigned int pthread_condattr_t; -# define GNULIB_defined_pthread_cond_types 1 -# endif -# undef PTHREAD_COND_INITIALIZER -# define PTHREAD_COND_INITIALIZER GLWTHREAD_COND_INIT -# else -# if @HAVE_PTHREAD_T@ -# define pthread_cond_t rpl_pthread_cond_t -# define pthread_condattr_t rpl_pthread_condattr_t -# endif -# if !GNULIB_defined_pthread_cond_types -typedef int pthread_cond_t; -typedef unsigned int pthread_condattr_t; -# define GNULIB_defined_pthread_cond_types 1 -# endif -# undef PTHREAD_COND_INITIALIZER -# define PTHREAD_COND_INITIALIZER { 0 } -# endif -#else -# if !@HAVE_PTHREAD_T@ -# if !GNULIB_defined_pthread_cond_types -typedef int pthread_cond_t; -typedef unsigned int pthread_condattr_t; -# define GNULIB_defined_pthread_cond_types 1 -# endif -# undef PTHREAD_COND_INITIALIZER -# define PTHREAD_COND_INITIALIZER { 0 } -# endif -#endif - -/* =========== Thread-specific storage types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if @GNULIB_PTHREAD_TSS@ -# include "windows-tls.h" -# if @HAVE_PTHREAD_T@ -# define pthread_key_t rpl_pthread_key_t -# endif -# if !GNULIB_defined_pthread_tss_types -typedef glwthread_tls_key_t pthread_key_t; -# define GNULIB_defined_pthread_tss_types 1 -# endif -# undef PTHREAD_DESTRUCTOR_ITERATIONS -# define PTHREAD_DESTRUCTOR_ITERATIONS GLWTHREAD_DESTRUCTOR_ITERATIONS -# else -# if @HAVE_PTHREAD_T@ -# define pthread_key_t rpl_pthread_key_t -# endif -# if !GNULIB_defined_pthread_tss_types -typedef void ** pthread_key_t; -# define GNULIB_defined_pthread_tss_types 1 -# endif -# undef PTHREAD_DESTRUCTOR_ITERATIONS -# define PTHREAD_DESTRUCTOR_ITERATIONS 0 -# endif -#else -# if !@HAVE_PTHREAD_T@ -# if !GNULIB_defined_pthread_tss_types -typedef void ** pthread_key_t; -# define GNULIB_defined_pthread_tss_types 1 -# endif -# undef PTHREAD_DESTRUCTOR_ITERATIONS -# define PTHREAD_DESTRUCTOR_ITERATIONS 0 -# endif -#endif - -/* =========== Spinlock types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if @GNULIB_PTHREAD_SPIN@ -# include "windows-spin.h" -# if @HAVE_PTHREAD_T@ -# define pthread_spinlock_t rpl_pthread_spinlock_t -# endif -# if !GNULIB_defined_pthread_spin_types -typedef glwthread_spinlock_t pthread_spinlock_t; -# define GNULIB_defined_pthread_spin_types 1 -# endif -# else -# if @HAVE_PTHREAD_T@ -# define pthread_spinlock_t rpl_pthread_spinlock_t -# endif -# if !GNULIB_defined_pthread_spin_types -typedef pthread_mutex_t pthread_spinlock_t; -# define GNULIB_defined_pthread_spin_types 1 -# endif -# endif -# undef PTHREAD_PROCESS_PRIVATE -# undef PTHREAD_PROCESS_SHARED -# define PTHREAD_PROCESS_PRIVATE 0 -# define PTHREAD_PROCESS_SHARED 1 -#else -# if @HAVE_PTHREAD_SPINLOCK_T@ -/* <pthread.h> exists and defines pthread_spinlock_t. */ -# if !(((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) \ - || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 1)) \ - || (((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) \ - && !defined __ANDROID__) \ - || __clang_major__ >= 3)) \ - && !defined __ibmxl__) -/* We can't use GCC built-ins. Approximate spinlocks with mutexes. */ -# if !GNULIB_defined_pthread_spin_types -# define pthread_spinlock_t pthread_mutex_t -# define GNULIB_defined_pthread_spin_types 1 -# endif -# endif -# else -/* Approximate spinlocks with mutexes. */ -# if !GNULIB_defined_pthread_spin_types -typedef pthread_mutex_t pthread_spinlock_t; -# define GNULIB_defined_pthread_spin_types 1 -# endif -# endif -# if !@HAVE_PTHREAD_PROCESS_SHARED@ -# define PTHREAD_PROCESS_PRIVATE 0 -# define PTHREAD_PROCESS_SHARED 1 -# endif -#endif - -/* =========== Other types and macros =========== */ - -#if !@HAVE_PTHREAD_T@ -# if !GNULIB_defined_other_pthread_types -typedef int pthread_barrier_t; -typedef unsigned int pthread_barrierattr_t; -# define GNULIB_defined_other_pthread_types 1 -# endif -#endif - -#if !defined PTHREAD_CANCELED - -# define PTHREAD_BARRIER_SERIAL_THREAD (-1) - -# define PTHREAD_CANCEL_DEFERRED 0 -# define PTHREAD_CANCEL_ASYNCHRONOUS 1 - -# define PTHREAD_CANCEL_ENABLE 0 -# define PTHREAD_CANCEL_DISABLE 1 - -# define PTHREAD_CANCELED ((void *) -1) - -# define PTHREAD_INHERIT_SCHED 0 -# define PTHREAD_EXPLICIT_SCHED 1 - -# define PTHREAD_PRIO_NONE 0 -# define PTHREAD_PRIO_INHERIT 1 -# define PTHREAD_PRIO_PROTECT 2 - -# define PTHREAD_SCOPE_SYSTEM 0 -# define PTHREAD_SCOPE_PROCESS 1 - -#endif - -/* =========== Thread functions =========== */ - -#if @GNULIB_PTHREAD_THREAD@ -/* The 'restrict' qualifier on ARG is nonsense, but POSIX specifies it this way. - Sigh. */ -# if @REPLACE_PTHREAD_CREATE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_create -# define pthread_create rpl_pthread_create -# endif -_GL_FUNCDECL_RPL (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg) - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg)); -# else -# if !@HAVE_PTHREAD_CREATE@ -_GL_FUNCDECL_SYS (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg) - _GL_ARG_NONNULL ((1, 3))); -# endif -_GL_CXXALIAS_SYS_CAST (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_create); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_create -# if HAVE_RAW_DECL_PTHREAD_CREATE -_GL_WARN_ON_USE (pthread_create, "pthread_create is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_ATTR_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_init -# define pthread_attr_init rpl_pthread_attr_init -# endif -_GL_FUNCDECL_RPL (pthread_attr_init, int, (pthread_attr_t *attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_attr_init, int, (pthread_attr_t *attr)); -# else -# if !@HAVE_PTHREAD_ATTR_INIT@ -_GL_FUNCDECL_SYS (pthread_attr_init, int, (pthread_attr_t *attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_init, int, (pthread_attr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_init -# if HAVE_RAW_DECL_PTHREAD_ATTR_INIT -_GL_WARN_ON_USE (pthread_attr_init, "pthread_attr_init is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_ATTR_GETDETACHSTATE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_getdetachstate -# define pthread_attr_getdetachstate rpl_pthread_attr_getdetachstate -# endif -_GL_FUNCDECL_RPL (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep)); -# else -# if !@HAVE_PTHREAD_ATTR_GETDETACHSTATE@ -_GL_FUNCDECL_SYS (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_getdetachstate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_getdetachstate -# if HAVE_RAW_DECL_PTHREAD_ATTR_GETDETACHSTATE -_GL_WARN_ON_USE (pthread_attr_getdetachstate, "pthread_attr_getdetachstate is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_ATTR_SETDETACHSTATE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_setdetachstate -# define pthread_attr_setdetachstate rpl_pthread_attr_setdetachstate -# endif -_GL_FUNCDECL_RPL (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate)); -# else -# if !@HAVE_PTHREAD_ATTR_SETDETACHSTATE@ -_GL_FUNCDECL_SYS (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_setdetachstate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_setdetachstate -# if HAVE_RAW_DECL_PTHREAD_ATTR_SETDETACHSTATE -_GL_WARN_ON_USE (pthread_attr_setdetachstate, "pthread_attr_setdetachstate is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_ATTR_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_destroy -# define pthread_attr_destroy rpl_pthread_attr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_attr_destroy, int, (pthread_attr_t *attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_attr_destroy, int, (pthread_attr_t *attr)); -# else -# if !@HAVE_PTHREAD_ATTR_DESTROY@ -_GL_FUNCDECL_SYS (pthread_attr_destroy, int, (pthread_attr_t *attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_destroy, int, (pthread_attr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_destroy -# if HAVE_RAW_DECL_PTHREAD_ATTR_DESTROY -_GL_WARN_ON_USE (pthread_attr_destroy, "pthread_attr_destroy is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_SELF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_self -# define pthread_self rpl_pthread_self -# endif -_GL_FUNCDECL_RPL (pthread_self, pthread_t, (void) _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (pthread_self, pthread_t, (void)); -# else -# if !@HAVE_PTHREAD_SELF@ -_GL_FUNCDECL_SYS (pthread_self, pthread_t, (void) _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (pthread_self, pthread_t, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_self); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_self -# if HAVE_RAW_DECL_PTHREAD_SELF -_GL_WARN_ON_USE (pthread_self, "pthread_self is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_EQUAL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_equal -# define pthread_equal rpl_pthread_equal -# endif -_GL_FUNCDECL_RPL (pthread_equal, int, (pthread_t thread1, pthread_t thread2)); -_GL_CXXALIAS_RPL (pthread_equal, int, (pthread_t thread1, pthread_t thread2)); -# else -# if !@HAVE_PTHREAD_EQUAL@ -_GL_FUNCDECL_SYS (pthread_equal, int, (pthread_t thread1, pthread_t thread2)); -# endif -_GL_CXXALIAS_SYS (pthread_equal, int, (pthread_t thread1, pthread_t thread2)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_equal); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_equal -# if HAVE_RAW_DECL_PTHREAD_EQUAL -_GL_WARN_ON_USE (pthread_equal, "pthread_equal is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_DETACH@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_detach -# define pthread_detach rpl_pthread_detach -# endif -_GL_FUNCDECL_RPL (pthread_detach, int, (pthread_t thread)); -_GL_CXXALIAS_RPL (pthread_detach, int, (pthread_t thread)); -# else -# if !@HAVE_PTHREAD_DETACH@ -_GL_FUNCDECL_SYS (pthread_detach, int, (pthread_t thread)); -# endif -_GL_CXXALIAS_SYS (pthread_detach, int, (pthread_t thread)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_detach); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_detach -# if HAVE_RAW_DECL_PTHREAD_DETACH -_GL_WARN_ON_USE (pthread_detach, "pthread_detach is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_JOIN@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_join -# define pthread_join rpl_pthread_join -# endif -_GL_FUNCDECL_RPL (pthread_join, int, (pthread_t thread, void **valuep)); -_GL_CXXALIAS_RPL (pthread_join, int, (pthread_t thread, void **valuep)); -# else -# if !@HAVE_PTHREAD_JOIN@ -_GL_FUNCDECL_SYS (pthread_join, int, (pthread_t thread, void **valuep)); -# endif -_GL_CXXALIAS_SYS (pthread_join, int, (pthread_t thread, void **valuep)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_join); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_join -# if HAVE_RAW_DECL_PTHREAD_JOIN -_GL_WARN_ON_USE (pthread_join, "pthread_join is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_THREAD@ -# if @REPLACE_PTHREAD_EXIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_exit -# define pthread_exit rpl_pthread_exit -# endif -_GL_FUNCDECL_RPL (pthread_exit, _Noreturn void, (void *value)); -_GL_CXXALIAS_RPL (pthread_exit, void, (void *value)); -# else -# if !@HAVE_PTHREAD_EXIT@ -_GL_FUNCDECL_SYS (pthread_exit, _Noreturn void, (void *value)); -# endif -/* Need to cast because of AIX with xlclang++. */ -_GL_CXXALIAS_SYS_CAST (pthread_exit, void, (void *value)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_exit); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_exit -# if HAVE_RAW_DECL_PTHREAD_EXIT -_GL_WARN_ON_USE (pthread_exit, "pthread_exit is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -/* =========== Once-only control (initialization) functions =========== */ - -#if @GNULIB_PTHREAD_ONCE@ -# if @REPLACE_PTHREAD_ONCE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_once -# define pthread_once rpl_pthread_once -# endif -_GL_FUNCDECL_RPL (pthread_once, int, - (pthread_once_t *once_control, void (*initfunction) (void)) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_once, int, - (pthread_once_t *once_control, void (*initfunction) (void))); -# else -# if !@HAVE_PTHREAD_ONCE@ -_GL_FUNCDECL_SYS (pthread_once, int, - (pthread_once_t *once_control, void (*initfunction) (void)) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS_CAST (pthread_once, int, - (pthread_once_t *once_control, - void (*initfunction) (void))); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_once); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_once -# if HAVE_RAW_DECL_PTHREAD_ONCE -_GL_WARN_ON_USE (pthread_once, "pthread_once is not portable - " - "use gnulib module pthread-once for portability"); -# endif -#endif - -/* =========== Mutex functions =========== */ - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEX_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_init -# define pthread_mutex_init rpl_pthread_mutex_init -# endif -_GL_FUNCDECL_RPL (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr)); -# else -# if !@HAVE_PTHREAD_MUTEX_INIT@ -_GL_FUNCDECL_SYS (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_init -# if HAVE_RAW_DECL_PTHREAD_MUTEX_INIT -_GL_WARN_ON_USE (pthread_mutex_init, "pthread_mutex_init is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEXATTR_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_init -# define pthread_mutexattr_init rpl_pthread_mutexattr_init -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr)); -# else -# if !@HAVE_PTHREAD_MUTEXATTR_INIT@ -_GL_FUNCDECL_SYS (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_init -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_INIT -_GL_WARN_ON_USE (pthread_mutexattr_init, "pthread_mutexattr_init is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEXATTR_GETTYPE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_gettype -# define pthread_mutexattr_gettype rpl_pthread_mutexattr_gettype -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep)); -# else -# if !@HAVE_PTHREAD_MUTEXATTR_GETTYPE@ -_GL_FUNCDECL_SYS (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep) - _GL_ARG_NONNULL ((1, 2))); -# endif -/* Need to cast, because on FreeBSD the first parameter is - pthread_mutexattr_t *attr. */ -_GL_CXXALIAS_SYS_CAST (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_gettype); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_gettype -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETTYPE -_GL_WARN_ON_USE (pthread_mutexattr_gettype, "pthread_mutexattr_gettype is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEXATTR_SETTYPE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_settype -# define pthread_mutexattr_settype rpl_pthread_mutexattr_settype -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type)); -# else -# if !@HAVE_PTHREAD_MUTEXATTR_SETTYPE@ -_GL_FUNCDECL_SYS (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_settype); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_settype -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETTYPE -_GL_WARN_ON_USE (pthread_mutexattr_settype, "pthread_mutexattr_settype is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEXATTR_GETROBUST@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_getrobust -# define pthread_mutexattr_getrobust rpl_pthread_mutexattr_getrobust -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp)); -# else -# if !@HAVE_PTHREAD_MUTEXATTR_GETROBUST@ -_GL_FUNCDECL_SYS (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp) - _GL_ARG_NONNULL ((1, 2))); -# endif -/* Need to cast, because on FreeBSD the first parameter is - pthread_mutexattr_t *attr. */ -_GL_CXXALIAS_SYS_CAST (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_getrobust); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_getrobust -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETROBUST -_GL_WARN_ON_USE (pthread_mutexattr_getrobust, "pthread_mutexattr_getrobust is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEXATTR_SETROBUST@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_setrobust -# define pthread_mutexattr_setrobust rpl_pthread_mutexattr_setrobust -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust)); -# else -# if !@HAVE_PTHREAD_MUTEXATTR_SETROBUST@ -_GL_FUNCDECL_SYS (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_setrobust); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_setrobust -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETROBUST -_GL_WARN_ON_USE (pthread_mutexattr_setrobust, "pthread_mutexattr_setrobust is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEXATTR_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_destroy -# define pthread_mutexattr_destroy rpl_pthread_mutexattr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr)); -# else -# if !@HAVE_PTHREAD_MUTEXATTR_DESTROY@ -_GL_FUNCDECL_SYS (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_destroy -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_DESTROY -_GL_WARN_ON_USE (pthread_mutexattr_destroy, "pthread_mutexattr_destroy is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEX_LOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_lock -# define pthread_mutex_lock rpl_pthread_mutex_lock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_lock, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_lock, int, (pthread_mutex_t *mutex)); -# else -# if !@HAVE_PTHREAD_MUTEX_LOCK@ -_GL_FUNCDECL_SYS (pthread_mutex_lock, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_lock, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_lock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_lock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_LOCK -_GL_WARN_ON_USE (pthread_mutex_lock, "pthread_mutex_lock is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEX_TRYLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_trylock -# define pthread_mutex_trylock rpl_pthread_mutex_trylock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_trylock, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_trylock, int, (pthread_mutex_t *mutex)); -# else -# if !@HAVE_PTHREAD_MUTEX_TRYLOCK@ -_GL_FUNCDECL_SYS (pthread_mutex_trylock, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_trylock, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_trylock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_trylock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_TRYLOCK -_GL_WARN_ON_USE (pthread_mutex_trylock, "pthread_mutex_trylock is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX_TIMEDLOCK@ -# if @REPLACE_PTHREAD_MUTEX_TIMEDLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_timedlock -# define pthread_mutex_timedlock rpl_pthread_mutex_timedlock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# else -# if !@HAVE_PTHREAD_MUTEX_TIMEDLOCK@ -_GL_FUNCDECL_SYS (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_timedlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_timedlock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_TIMEDLOCK -_GL_WARN_ON_USE (pthread_mutex_timedlock, "pthread_mutex_timedlock is not portable - " - "use gnulib module pthread_mutex_timedlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEX_UNLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_unlock -# define pthread_mutex_unlock rpl_pthread_mutex_unlock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_unlock, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_unlock, int, (pthread_mutex_t *mutex)); -# else -# if !@HAVE_PTHREAD_MUTEX_UNLOCK@ -_GL_FUNCDECL_SYS (pthread_mutex_unlock, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_unlock, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_unlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_unlock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_UNLOCK -_GL_WARN_ON_USE (pthread_mutex_unlock, "pthread_mutex_unlock is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_MUTEX@ -# if @REPLACE_PTHREAD_MUTEX_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_destroy -# define pthread_mutex_destroy rpl_pthread_mutex_destroy -# endif -_GL_FUNCDECL_RPL (pthread_mutex_destroy, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_destroy, int, (pthread_mutex_t *mutex)); -# else -# if !@HAVE_PTHREAD_MUTEX_DESTROY@ -_GL_FUNCDECL_SYS (pthread_mutex_destroy, int, (pthread_mutex_t *mutex) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_destroy, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_destroy -# if HAVE_RAW_DECL_PTHREAD_MUTEX_DESTROY -_GL_WARN_ON_USE (pthread_mutex_destroy, "pthread_mutex_destroy is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -/* =========== Read-write lock functions =========== */ - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_init -# define pthread_rwlock_init rpl_pthread_rwlock_init -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr)); -# else -# if !@HAVE_PTHREAD_RWLOCK_INIT@ -_GL_FUNCDECL_SYS (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_init -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_INIT -_GL_WARN_ON_USE (pthread_rwlock_init, "pthread_rwlock_init is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCKATTR_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlockattr_init -# define pthread_rwlockattr_init rpl_pthread_rwlockattr_init -# endif -_GL_FUNCDECL_RPL (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr)); -# else -# if !@HAVE_PTHREAD_RWLOCKATTR_INIT@ -_GL_FUNCDECL_SYS (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlockattr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlockattr_init -# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_INIT -_GL_WARN_ON_USE (pthread_rwlockattr_init, "pthread_rwlockattr_init is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCKATTR_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlockattr_destroy -# define pthread_rwlockattr_destroy rpl_pthread_rwlockattr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr)); -# else -# if !@HAVE_PTHREAD_RWLOCKATTR_DESTROY@ -_GL_FUNCDECL_SYS (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlockattr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlockattr_destroy -# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_DESTROY -_GL_WARN_ON_USE (pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_RDLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_rdlock -# define pthread_rwlock_rdlock rpl_pthread_rwlock_rdlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock)); -# else -# if !@HAVE_PTHREAD_RWLOCK_RDLOCK@ -_GL_FUNCDECL_SYS (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_rdlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_rdlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_RDLOCK -_GL_WARN_ON_USE (pthread_rwlock_rdlock, "pthread_rwlock_rdlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_WRLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_wrlock -# define pthread_rwlock_wrlock rpl_pthread_rwlock_wrlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock)); -# else -# if !@HAVE_PTHREAD_RWLOCK_WRLOCK@ -_GL_FUNCDECL_SYS (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_wrlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_wrlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_WRLOCK -_GL_WARN_ON_USE (pthread_rwlock_wrlock, "pthread_rwlock_wrlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_TRYRDLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_tryrdlock -# define pthread_rwlock_tryrdlock rpl_pthread_rwlock_tryrdlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock)); -# else -# if !@HAVE_PTHREAD_RWLOCK_TRYRDLOCK@ -_GL_FUNCDECL_SYS (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_tryrdlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_tryrdlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYRDLOCK -_GL_WARN_ON_USE (pthread_rwlock_tryrdlock, "pthread_rwlock_tryrdlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_TRYWRLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_trywrlock -# define pthread_rwlock_trywrlock rpl_pthread_rwlock_trywrlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock)); -# else -# if !@HAVE_PTHREAD_RWLOCK_TRYWRLOCK@ -_GL_FUNCDECL_SYS (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_trywrlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_trywrlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYWRLOCK -_GL_WARN_ON_USE (pthread_rwlock_trywrlock, "pthread_rwlock_trywrlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_timedrdlock -# define pthread_rwlock_timedrdlock rpl_pthread_rwlock_timedrdlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# else -# if !@HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK@ -_GL_FUNCDECL_SYS (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_timedrdlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_timedrdlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDRDLOCK -_GL_WARN_ON_USE (pthread_rwlock_timedrdlock, "pthread_rwlock_timedrdlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_timedwrlock -# define pthread_rwlock_timedwrlock rpl_pthread_rwlock_timedwrlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# else -# if !@HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK@ -_GL_FUNCDECL_SYS (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_timedwrlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_timedwrlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDWRLOCK -_GL_WARN_ON_USE (pthread_rwlock_timedwrlock, "pthread_rwlock_timedwrlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_UNLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_unlock -# define pthread_rwlock_unlock rpl_pthread_rwlock_unlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock)); -# else -# if !@HAVE_PTHREAD_RWLOCK_UNLOCK@ -_GL_FUNCDECL_SYS (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_unlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_unlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_UNLOCK -_GL_WARN_ON_USE (pthread_rwlock_unlock, "pthread_rwlock_unlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_RWLOCK@ -# if @REPLACE_PTHREAD_RWLOCK_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_destroy -# define pthread_rwlock_destroy rpl_pthread_rwlock_destroy -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock)); -# else -# if !@HAVE_PTHREAD_RWLOCK_DESTROY@ -_GL_FUNCDECL_SYS (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_destroy -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_DESTROY -_GL_WARN_ON_USE (pthread_rwlock_destroy, "pthread_rwlock_destroy is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -/* =========== Condition variable functions =========== */ - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_COND_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_init -# define pthread_cond_init rpl_pthread_cond_init -# endif -_GL_FUNCDECL_RPL (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr)); -# else -# if !@HAVE_PTHREAD_COND_INIT@ -_GL_FUNCDECL_SYS (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_init -# if HAVE_RAW_DECL_PTHREAD_COND_INIT -_GL_WARN_ON_USE (pthread_cond_init, "pthread_cond_init is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_CONDATTR_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_condattr_init -# define pthread_condattr_init rpl_pthread_condattr_init -# endif -_GL_FUNCDECL_RPL (pthread_condattr_init, int, (pthread_condattr_t *attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_condattr_init, int, (pthread_condattr_t *attr)); -# else -# if !@HAVE_PTHREAD_CONDATTR_INIT@ -_GL_FUNCDECL_SYS (pthread_condattr_init, int, (pthread_condattr_t *attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_condattr_init, int, (pthread_condattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_condattr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_condattr_init -# if HAVE_RAW_DECL_PTHREAD_CONDATTR_INIT -_GL_WARN_ON_USE (pthread_condattr_init, "pthread_condattr_init is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_CONDATTR_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_condattr_destroy -# define pthread_condattr_destroy rpl_pthread_condattr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_condattr_destroy, int, (pthread_condattr_t *attr) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_condattr_destroy, int, (pthread_condattr_t *attr)); -# else -# if !@HAVE_PTHREAD_CONDATTR_DESTROY@ -_GL_FUNCDECL_SYS (pthread_condattr_destroy, int, (pthread_condattr_t *attr) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_condattr_destroy, int, (pthread_condattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_condattr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_condattr_destroy -# if HAVE_RAW_DECL_PTHREAD_CONDATTR_DESTROY -_GL_WARN_ON_USE (pthread_condattr_destroy, "pthread_condattr_destroy is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_COND_WAIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_wait -# define pthread_cond_wait rpl_pthread_cond_wait -# endif -_GL_FUNCDECL_RPL (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex)); -# else -# if !@HAVE_PTHREAD_COND_WAIT@ -_GL_FUNCDECL_SYS (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_wait); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_wait -# if HAVE_RAW_DECL_PTHREAD_COND_WAIT -_GL_WARN_ON_USE (pthread_cond_wait, "pthread_cond_wait is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_COND_TIMEDWAIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_timedwait -# define pthread_cond_timedwait rpl_pthread_cond_timedwait -# endif -_GL_FUNCDECL_RPL (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2, 3))); -_GL_CXXALIAS_RPL (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# else -# if !@HAVE_PTHREAD_COND_TIMEDWAIT@ -_GL_FUNCDECL_SYS (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime) - _GL_ARG_NONNULL ((1, 2, 3))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_timedwait); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_timedwait -# if HAVE_RAW_DECL_PTHREAD_COND_TIMEDWAIT -_GL_WARN_ON_USE (pthread_cond_timedwait, "pthread_cond_timedwait is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_COND_SIGNAL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_signal -# define pthread_cond_signal rpl_pthread_cond_signal -# endif -_GL_FUNCDECL_RPL (pthread_cond_signal, int, (pthread_cond_t *cond) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_signal, int, (pthread_cond_t *cond)); -# else -# if !@HAVE_PTHREAD_COND_SIGNAL@ -_GL_FUNCDECL_SYS (pthread_cond_signal, int, (pthread_cond_t *cond) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_signal, int, (pthread_cond_t *cond)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_signal); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_signal -# if HAVE_RAW_DECL_PTHREAD_COND_SIGNAL -_GL_WARN_ON_USE (pthread_cond_signal, "pthread_cond_signal is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_COND_BROADCAST@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_broadcast -# define pthread_cond_broadcast rpl_pthread_cond_broadcast -# endif -_GL_FUNCDECL_RPL (pthread_cond_broadcast, int, (pthread_cond_t *cond) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_broadcast, int, (pthread_cond_t *cond)); -# else -# if !@HAVE_PTHREAD_COND_BROADCAST@ -_GL_FUNCDECL_SYS (pthread_cond_broadcast, int, (pthread_cond_t *cond) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_broadcast, int, (pthread_cond_t *cond)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_broadcast); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_broadcast -# if HAVE_RAW_DECL_PTHREAD_COND_BROADCAST -_GL_WARN_ON_USE (pthread_cond_broadcast, "pthread_cond_broadcast is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_COND@ -# if @REPLACE_PTHREAD_COND_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_destroy -# define pthread_cond_destroy rpl_pthread_cond_destroy -# endif -_GL_FUNCDECL_RPL (pthread_cond_destroy, int, (pthread_cond_t *cond) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_destroy, int, (pthread_cond_t *cond)); -# else -# if !@HAVE_PTHREAD_COND_DESTROY@ -_GL_FUNCDECL_SYS (pthread_cond_destroy, int, (pthread_cond_t *cond) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_destroy, int, (pthread_cond_t *cond)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_destroy -# if HAVE_RAW_DECL_PTHREAD_COND_DESTROY -_GL_WARN_ON_USE (pthread_cond_destroy, "pthread_cond_destroy is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -/* =========== Thread-specific storage functions =========== */ - -#if @GNULIB_PTHREAD_TSS@ -# if @REPLACE_PTHREAD_KEY_CREATE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_key_create -# define pthread_key_create rpl_pthread_key_create -# endif -_GL_FUNCDECL_RPL (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *)) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *))); -# else -# if !@HAVE_PTHREAD_KEY_CREATE@ -_GL_FUNCDECL_SYS (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *)) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS_CAST (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *))); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_key_create); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_key_create -# if HAVE_RAW_DECL_PTHREAD_KEY_CREATE -_GL_WARN_ON_USE (pthread_key_create, "pthread_key_create is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_TSS@ -# if @REPLACE_PTHREAD_SETSPECIFIC@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_setspecific -# define pthread_setspecific rpl_pthread_setspecific -# endif -_GL_FUNCDECL_RPL (pthread_setspecific, int, - (pthread_key_t key, const void *value)); -_GL_CXXALIAS_RPL (pthread_setspecific, int, - (pthread_key_t key, const void *value)); -# else -# if !@HAVE_PTHREAD_SETSPECIFIC@ -_GL_FUNCDECL_SYS (pthread_setspecific, int, - (pthread_key_t key, const void *value)); -# endif -_GL_CXXALIAS_SYS (pthread_setspecific, int, - (pthread_key_t key, const void *value)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_setspecific); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_setspecific -# if HAVE_RAW_DECL_PTHREAD_SETSPECIFIC -_GL_WARN_ON_USE (pthread_setspecific, "pthread_setspecific is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_TSS@ -# if @REPLACE_PTHREAD_GETSPECIFIC@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_getspecific -# define pthread_getspecific rpl_pthread_getspecific -# endif -_GL_FUNCDECL_RPL (pthread_getspecific, void *, (pthread_key_t key)); -_GL_CXXALIAS_RPL (pthread_getspecific, void *, (pthread_key_t key)); -# else -# if !@HAVE_PTHREAD_GETSPECIFIC@ -_GL_FUNCDECL_SYS (pthread_getspecific, void *, (pthread_key_t key)); -# endif -_GL_CXXALIAS_SYS (pthread_getspecific, void *, (pthread_key_t key)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_getspecific); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_getspecific -# if HAVE_RAW_DECL_PTHREAD_GETSPECIFIC -_GL_WARN_ON_USE (pthread_getspecific, "pthread_getspecific is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_TSS@ -# if @REPLACE_PTHREAD_KEY_DELETE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_key_delete -# define pthread_key_delete rpl_pthread_key_delete -# endif -_GL_FUNCDECL_RPL (pthread_key_delete, int, (pthread_key_t key)); -_GL_CXXALIAS_RPL (pthread_key_delete, int, (pthread_key_t key)); -# else -# if !@HAVE_PTHREAD_KEY_DELETE@ -_GL_FUNCDECL_SYS (pthread_key_delete, int, (pthread_key_t key)); -# endif -_GL_CXXALIAS_SYS (pthread_key_delete, int, (pthread_key_t key)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_key_delete); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_key_delete -# if HAVE_RAW_DECL_PTHREAD_KEY_DELETE -_GL_WARN_ON_USE (pthread_key_delete, "pthread_key_delete is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -/* =========== Spinlock functions =========== */ - -#if @GNULIB_PTHREAD_SPIN@ -# if @REPLACE_PTHREAD_SPIN_INIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_init -# define pthread_spin_init rpl_pthread_spin_init -# endif -_GL_FUNCDECL_RPL (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes)); -# else -# if !@HAVE_PTHREAD_SPIN_INIT@ -_GL_FUNCDECL_SYS (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_init -# if HAVE_RAW_DECL_PTHREAD_SPIN_INIT -_GL_WARN_ON_USE (pthread_spin_init, "pthread_spin_init is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_SPIN@ -# if @REPLACE_PTHREAD_SPIN_LOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_lock -# define pthread_spin_lock rpl_pthread_spin_lock -# endif -_GL_FUNCDECL_RPL (pthread_spin_lock, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_lock, int, (pthread_spinlock_t *lock)); -# else -# if !@HAVE_PTHREAD_SPIN_LOCK@ -_GL_FUNCDECL_SYS (pthread_spin_lock, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_lock, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_lock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_lock -# if HAVE_RAW_DECL_PTHREAD_SPIN_LOCK -_GL_WARN_ON_USE (pthread_spin_lock, "pthread_spin_lock is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_SPIN@ -# if @REPLACE_PTHREAD_SPIN_TRYLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_trylock -# define pthread_spin_trylock rpl_pthread_spin_trylock -# endif -_GL_FUNCDECL_RPL (pthread_spin_trylock, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_trylock, int, (pthread_spinlock_t *lock)); -# else -# if !@HAVE_PTHREAD_SPIN_TRYLOCK@ -_GL_FUNCDECL_SYS (pthread_spin_trylock, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_trylock, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_trylock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_trylock -# if HAVE_RAW_DECL_PTHREAD_SPIN_TRYLOCK -_GL_WARN_ON_USE (pthread_spin_trylock, "pthread_spin_trylock is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_SPIN@ -# if @REPLACE_PTHREAD_SPIN_UNLOCK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_unlock -# define pthread_spin_unlock rpl_pthread_spin_unlock -# endif -_GL_FUNCDECL_RPL (pthread_spin_unlock, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_unlock, int, (pthread_spinlock_t *lock)); -# else -# if !@HAVE_PTHREAD_SPIN_UNLOCK@ -_GL_FUNCDECL_SYS (pthread_spin_unlock, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_unlock, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_unlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_unlock -# if HAVE_RAW_DECL_PTHREAD_SPIN_UNLOCK -_GL_WARN_ON_USE (pthread_spin_unlock, "pthread_spin_unlock is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if @GNULIB_PTHREAD_SPIN@ -# if @REPLACE_PTHREAD_SPIN_DESTROY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_destroy -# define pthread_spin_destroy rpl_pthread_spin_destroy -# endif -_GL_FUNCDECL_RPL (pthread_spin_destroy, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_destroy, int, (pthread_spinlock_t *lock)); -# else -# if !@HAVE_PTHREAD_SPIN_DESTROY@ -_GL_FUNCDECL_SYS (pthread_spin_destroy, int, (pthread_spinlock_t *lock) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_destroy, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_destroy -# if HAVE_RAW_DECL_PTHREAD_SPIN_DESTROY -_GL_WARN_ON_USE (pthread_spin_destroy, "pthread_spin_destroy is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - - -#if defined __cplusplus && defined GNULIB_NAMESPACE && !@HAVE_PTHREAD_H@ && defined __MINGW32__ -/* Provide the symbols required by mingw's <bits/gthr-default.h>. */ -using GNULIB_NAMESPACE::pthread_create; -using GNULIB_NAMESPACE::pthread_self; -using GNULIB_NAMESPACE::pthread_equal; -using GNULIB_NAMESPACE::pthread_detach; -using GNULIB_NAMESPACE::pthread_join; -using GNULIB_NAMESPACE::pthread_once; -using GNULIB_NAMESPACE::pthread_mutex_init; -using GNULIB_NAMESPACE::pthread_mutexattr_init; -using GNULIB_NAMESPACE::pthread_mutexattr_settype; -using GNULIB_NAMESPACE::pthread_mutexattr_destroy; -using GNULIB_NAMESPACE::pthread_mutex_lock; -using GNULIB_NAMESPACE::pthread_mutex_trylock; -using GNULIB_NAMESPACE::pthread_mutex_timedlock; -using GNULIB_NAMESPACE::pthread_mutex_unlock; -using GNULIB_NAMESPACE::pthread_mutex_destroy; -using GNULIB_NAMESPACE::pthread_cond_wait; -using GNULIB_NAMESPACE::pthread_cond_timedwait; -using GNULIB_NAMESPACE::pthread_cond_signal; -using GNULIB_NAMESPACE::pthread_cond_broadcast; -using GNULIB_NAMESPACE::pthread_cond_destroy; -using GNULIB_NAMESPACE::pthread_key_create; -using GNULIB_NAMESPACE::pthread_setspecific; -using GNULIB_NAMESPACE::pthread_getspecific; -using GNULIB_NAMESPACE::pthread_key_delete; -#endif - - -#endif /* _@GUARD_PREFIX@_PTHREAD_H_ */ -#endif /* _@GUARD_PREFIX@_PTHREAD_H_ */ -#endif |