(root)/
m4-1.4.19/
tests/
test-pthread.c
       1  /* Test of <pthread.h> substitute.
       2     Copyright (C) 2019-2021 Free Software Foundation, Inc.
       3  
       4     This program is free software: you can redistribute it and/or modify
       5     it under the terms of the GNU General Public License as published by
       6     the Free Software Foundation; either version 3 of the License, or
       7     (at your option) any later version.
       8  
       9     This program is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12     GNU General Public License for more details.
      13  
      14     You should have received a copy of the GNU General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  /* Written by Bruno Haible <bruno@clisp.org>, 2019.  */
      18  
      19  #include <config.h>
      20  
      21  #include <pthread.h>
      22  
      23  #include "verify.h"
      24  
      25  /* Check that the types are all defined.  */
      26  
      27  pthread_t t1;
      28  pthread_attr_t t2;
      29  
      30  pthread_once_t t3 = PTHREAD_ONCE_INIT;
      31  
      32  pthread_mutex_t t4 = PTHREAD_MUTEX_INITIALIZER;
      33  pthread_mutexattr_t t5;
      34  
      35  pthread_rwlock_t t6 = PTHREAD_RWLOCK_INITIALIZER;
      36  pthread_rwlockattr_t t7;
      37  
      38  pthread_cond_t t8 = PTHREAD_COND_INITIALIZER;
      39  pthread_condattr_t t9;
      40  
      41  pthread_key_t t10;
      42  
      43  pthread_spinlock_t t11;
      44  
      45  #ifdef TODO /* Not implemented in gnulib yet */
      46  pthread_barrier_t t12;
      47  pthread_barrierattr_t t13;
      48  #endif
      49  
      50  /* Check that the various macros are defined.  */
      51  
      52  /* Constants for pthread_attr_setdetachstate().  */
      53  int ds[] = { PTHREAD_CREATE_JOINABLE, PTHREAD_CREATE_DETACHED };
      54  
      55  /* Constants for pthread_exit().  */
      56  void *canceled = PTHREAD_CANCELED;
      57  
      58  /* Constants for pthread_mutexattr_settype().  */
      59  int mt[] = {
      60    PTHREAD_MUTEX_DEFAULT,
      61    PTHREAD_MUTEX_NORMAL,
      62    PTHREAD_MUTEX_RECURSIVE,
      63    PTHREAD_MUTEX_ERRORCHECK
      64  };
      65  
      66  #ifdef TODO /* Not implemented in gnulib yet */
      67  
      68  /* Constants for pthread_mutexattr_setrobust().  */
      69  int mr[] = { PTHREAD_MUTEX_ROBUST, PTHREAD_MUTEX_STALLED };
      70  
      71  /* Constants for pthread_barrierattr_setpshared().  */
      72  int bp[] = { PTHREAD_PROCESS_SHARED, PTHREAD_PROCESS_PRIVATE };
      73  
      74  /* Constants for pthread_barrier_wait().  */
      75  int bw[] = { PTHREAD_BARRIER_SERIAL_THREAD };
      76  
      77  /* Constants for pthread_setcancelstate().  */
      78  int cs[] = { PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE };
      79  
      80  /* Constants for pthread_setcanceltype().  */
      81  int ct[] = { PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_ASYNCHRONOUS };
      82  
      83  #endif
      84  
      85  
      86  int
      87  main (void)
      88  {
      89    return 0;
      90  }