annotate lib/pthread.in.h @ 13717:b747a553a8bb

pthread: add to system <pthread.h> instead of replacing it all, for MacOS * lib/pthread.in.h: Add split double-inclusion guard, and include system <pthread.h> if there is one. Use @@-style as in other .in.h files. Define PTHREAD_COND_INITIALIZER etc. only if system pthread.h doesn't. (pthread_mutexattr_destroy, pthread_mutexattr_init): (pthread_mutexattr_settype, pthread_mutex_trylock): New static inline functions, if there's no system <pthread.h>. (pthread_spinlock_t, pthread_spin_init, pthread_spin_destroy): (pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Approximate with mutexes if the system lacks spinlocks, as in MacOS. * m4/pthread.m4 (gl_PTHREAD_CHECK): Require gl_PTHREAD_DEFAULTS. Add gl_CHECK_NEXT_HEADERS for pthread.h, and support the usual @@-style. Check for spinlocks separately. (gl_PTHREAD_DEFAULTS): New macro. * modules/pthread: Redo to use a more typical style for in.h files.
author Paul Eggert <eggert@cs.ucla.edu>
date Wed, 22 Sep 2010 01:32:19 -0700
parents b236a91e37b9
children a19ace3ba849
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
1 /* Implement a trivial subset of POSIX 1003.1-2008 pthread.h.
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
2
12559
c2cbabec01dd update nearly all FSF copyright year lists to include 2010
Jim Meyering <meyering@redhat.com>
parents: 12421
diff changeset
3 Copyright (C) 2009, 2010 Free Software Foundation, Inc.
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
4
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
5 This program is free software; you can redistribute it and/or modify
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
7 the Free Software Foundation; either version 2, or (at your option)
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
8 any later version.
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
9
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
13 GNU General Public License for more details.
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
14
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
16 along with this program; if not, write to the Free Software Foundation,
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
17 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
18
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
19 /* Written by Paul Eggert and Glen Lenker. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
20
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
21 #ifndef _GL_PTHREAD_H_
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
22
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
23 #if __GNUC__ >= 3
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
24 @PRAGMA_SYSTEM_HEADER@
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
25 #endif
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
26
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
27 /* The include_next requires a split double-inclusion guard. */
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
28 #if @HAVE_PTHREAD_H@
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
29 # @INCLUDE_NEXT@ @NEXT_PTHREAD_H@
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
30 #endif
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
31
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
32 #ifndef _GL_PTHREAD_H_
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
33 #define _GL_PTHREAD_H_
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
34
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
35 #include <errno.h>
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
36 #include <stdlib.h>
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
37 #include <sched.h>
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
38 #include <sys/types.h>
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
39 #include <time.h>
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
40
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
41 #if ! @HAVE_PTHREAD_T@
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
42 typedef int pthread_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
43 typedef int pthread_attr_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
44 typedef int pthread_barrier_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
45 typedef int pthread_barrierattr_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
46 typedef int pthread_cond_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
47 typedef int pthread_condattr_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
48 typedef int pthread_key_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
49 typedef int pthread_mutex_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
50 typedef int pthread_mutexattr_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
51 typedef int pthread_once_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
52 typedef int pthread_rwlock_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
53 typedef int pthread_rwlockattr_t;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
54 #endif
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
55
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
56 #ifndef PTHREAD_COND_INITIALIZER
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
57 #define PTHREAD_COND_INITIALIZER { 0 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
58 #define PTHREAD_MUTEX_INITIALIZER { 0 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
59 #define PTHREAD_ONCE_INIT { 0 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
60 #define PTHREAD_RWLOCK_INITIALIZER { 0 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
61
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
62 #define PTHREAD_BARRIER_SERIAL_THREAD (-1)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
63
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
64 #define PTHREAD_CANCEL_DEFERRED 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
65 #define PTHREAD_CANCEL_ASYNCHRONOUS 1
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
66
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
67 #define PTHREAD_CANCEL_ENABLE 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
68 #define PTHREAD_CANCEL_DISABLE 1
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
69
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
70 #define PTHREAD_CANCELED ((void *) -1)
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
71
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
72 #define PTHREAD_CREATE_JOINABLE 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
73 #define PTHREAD_CREATE_DETACHED 1
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
74
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
75 #define PTHREAD_INHERIT_SCHED 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
76 #define PTHREAD_EXPLICIT_SCHED 1
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
77
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
78 #define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
79 #define PTHREAD_MUTEX_NORMAL 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
80 #define PTHREAD_MUTEX_ERRORCHECK 1
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
81 #define PTHREAD_MUTEX_RECURSIVE 2
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
82
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
83 #define PTHREAD_MUTEX_STALLED 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
84 #define PTHREAD_MUTEX_ROBUST 1
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
85
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
86 #define PTHREAD_PRIO_NONE 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
87 #define PTHREAD_PRIO_INHERIT 1
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
88 #define PTHREAD_PRIO_PROTECT 2
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
89
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
90 #define PTHREAD_PROCESS_PRIVATE 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
91 #define PTHREAD_PROCESS_SHARED 1
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
92
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
93 #define PTHREAD_SCOPE_SYSTEM 0
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
94 #define PTHREAD_SCOPE_PROCESS 1
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
95 #endif
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
96
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
97 #if ! @HAVE_PTHREAD_T@
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
98
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
99 /* Provide substitutes for the thread functions that should work
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
100 adequately on a single-threaded implementation, where
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
101 pthread_create always fails. The goal is to let programs compile
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
102 on non-pthread hosts with minimal runtime overhead.
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
103
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
104 Omit interfaces that have not been analyzed and for which we do not
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
105 know what to do, so that they elicit a compile-time error for
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
106 now. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
107
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
108 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
109 pthread_cond_destroy (pthread_cond_t *cond)
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
110 {
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
111 /* COND is never seriously used. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
112 return 0;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
113 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
114
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
115 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
116 pthread_cond_init (pthread_cond_t *restrict cond,
13479
8a0b8adde2be Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 13467
diff changeset
117 pthread_condattr_t const *restrict attr)
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
118 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
119 /* COND is never seriously used. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
120 return 0;
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
121 }
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
122
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
123 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
124 pthread_cond_signal (pthread_cond_t *cond)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
125 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
126 /* No threads can currently be blocked on COND. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
127 return 0;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
128 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
129
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
130 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
131 pthread_cond_wait (pthread_cond_t *restrict cond,
13479
8a0b8adde2be Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 13467
diff changeset
132 pthread_mutex_t *restrict mutex)
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
133 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
134 /* Properly-written applications never come here. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
135 abort ();
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
136 return 0;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
137 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
138
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
139 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
140 pthread_create (pthread_t *restrict thread,
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
141 pthread_attr_t const *restrict attr,
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
142 void * (*start_routine) (void*), void *restrict arg)
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
143 {
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
144 /* Do not create a thread. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
145 return EAGAIN;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
146 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
147
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
148 static inline void
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
149 pthread_exit (void *value)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
150 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
151 /* There is just one thread, so the process exits. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
152 exit (0);
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
153 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
154
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
155 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
156 pthread_join (pthread_t thread, void **pvalue)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
157 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
158 /* Properly-written applications never come here. */
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
159 abort ();
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
160 return 0;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
161 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
162
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
163 static inline int
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
164 pthread_mutexattr_destroy (pthread_mutexattr_t *attr)
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
165 {
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
166 return 0;
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
167 }
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
168
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
169 static inline int
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
170 pthread_mutexattr_init (pthread_mutexattr_t *attr)
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
171 {
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
172 return 0;
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
173 }
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
174
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
175 static inline int
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
176 pthread_mutexattr_settype (pthread_mutexattr_t *attr, int attr_type)
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
177 {
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
178 return 0;
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
179 }
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
180
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
181 static inline int
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
182 pthread_mutex_destroy (pthread_mutex_t *mutex)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
183 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
184 /* MUTEX is never seriously used. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
185 return 0;
11431
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
186 }
4a2a6b0eadea New modules nproc, pthread.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
187
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
188 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
189 pthread_mutex_init (pthread_mutex_t *restrict mutex,
13479
8a0b8adde2be Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 13467
diff changeset
190 pthread_mutexattr_t const *restrict attr)
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
191 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
192 /* MUTEX is never seriously used. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
193 return 0;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
194 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
195
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
196 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
197 pthread_mutex_lock (pthread_mutex_t *mutex)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
198 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
199 /* There is only one thread, so it always gets the lock. This
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
200 implementation does not support PTHREAD_MUTEX_ERRORCHECK. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
201 return 0;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
202 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
203
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
204 static inline int
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
205 pthread_mutex_trylock (pthread_mutex_t *mutex)
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
206 {
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
207 return pthread_mutex_lock (mutex);
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
208 }
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
209
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
210 static inline int
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
211 pthread_mutex_unlock (pthread_mutex_t *mutex)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
212 {
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
213 /* There is only one thread, so it always unlocks successfully.
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
214 This implementation does not support robust mutexes or
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
215 PTHREAD_MUTEX_ERRORCHECK. */
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
216 return 0;
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
217 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
218
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
219 #endif
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
220
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
221 #if ! @HAVE_PTHREAD_SPINLOCK_T@
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
222
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
223 /* Approximate spinlocks with mutexes. */
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
224
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
225 typedef pthread_mutex_t pthread_spinlock_t;
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
226
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
227 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
228 pthread_spin_init (pthread_spinlock_t *lock, int pshared)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
229 {
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
230 return pthread_mutex_init (lock, NULL);
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
231 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
232
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
233 static inline int
13706
b236a91e37b9 pthread: add pthread_spin_destroy
Paul Eggert <eggert@cs.ucla.edu>
parents: 13479
diff changeset
234 pthread_spin_destroy (pthread_spinlock_t *lock)
b236a91e37b9 pthread: add pthread_spin_destroy
Paul Eggert <eggert@cs.ucla.edu>
parents: 13479
diff changeset
235 {
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
236 return pthread_mutex_destroy (lock);
13706
b236a91e37b9 pthread: add pthread_spin_destroy
Paul Eggert <eggert@cs.ucla.edu>
parents: 13479
diff changeset
237 }
b236a91e37b9 pthread: add pthread_spin_destroy
Paul Eggert <eggert@cs.ucla.edu>
parents: 13479
diff changeset
238
b236a91e37b9 pthread: add pthread_spin_destroy
Paul Eggert <eggert@cs.ucla.edu>
parents: 13479
diff changeset
239 static inline int
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
240 pthread_spin_lock (pthread_spinlock_t *lock)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
241 {
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
242 return pthread_mutex_lock (lock);
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
243 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
244
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
245 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
246 pthread_spin_trylock (pthread_spinlock_t *lock)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
247 {
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
248 return pthread_mutex_trylock (lock);
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
249 }
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
250
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
251 static inline int
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
252 pthread_spin_unlock (pthread_spinlock_t *lock)
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
253 {
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
254 return pthread_mutex_unlock (lock);
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
255 }
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
256 #endif
13467
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
257
b3e78c51aab6 pthread: Add enough so that coreutils/src/sort.c compiles.
Paul R. Eggert <eggert@cs.ucla.edu>
parents: 12559
diff changeset
258 #endif /* _GL_PTHREAD_H_ */
13717
b747a553a8bb pthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert <eggert@cs.ucla.edu>
parents: 13706
diff changeset
259 #endif /* _GL_PTHREAD_H_ */