Blame gl/tests/pthread.in.h

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