xref: /netbsd-src/lib/libpthread/pthread.3 (revision 7fa608457b817eca6e0977b37f758ae064f3c99c)
1.\"	$NetBSD: pthread.3,v 1.6 2007/05/19 14:24:42 wiz Exp $
2.\"
3.\" Copyright (c) 2003 Hubert Feyrer <hubertf@NetBSD.org>
4.\" and Thomas Klausner <wiz@NetBSD.org>
5.\" All rights reserved.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\" 3. The name of the authors may not be used to endorse or promote products
16.\"    derived from this software without specific prior written permission.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
19.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21.\" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
30.Dd May 19, 2007
31.Dt PTHREAD 3
32.Os
33.Sh NAME
34.Nm pthread
35.Nd POSIX Threads Library
36.Sh LIBRARY
37.Lb libpthread
38.Sh SYNOPSIS
39.In pthread.h
40.Pp
41.Nm cc
42.Op Ar flags
43.Ar files
44.Fl lpthread
45.Op Ar libraries
46.Sh DESCRIPTION
47The
48.Nm
49library provides an implementation of the standard
50.Tn POSIX
51threads framework.
52.Sh ENVIRONMENT
53.Bl -tag -width PTHREAD_DEBUGCOUNTERSXX
54.It Ev PTHREAD_CONCURRENCY
55The current version of the system does not inspect this variable.
56It is reserved for use by the
57.Nm
58library.
59.It Ev PTHREAD_DIAGASSERT
60Possible values are any combinations of:
61.Bl -tag -width ignoreXX -offset indent -compact
62.It Sy A
63Ignore errors.
64.It Sy a
65Abort on errors, creating a core dump for further debugging.
66.It Sy E
67Do not log errors to stdout.
68.It Sy e
69Log errors to stdout.
70.It Sy L
71Do not log errors via
72.Xr syslogd 8 .
73.It Sy l
74Log errors via
75.Xr syslogd 8 .
76.El
77.It Ev PTHREAD_DEBUGCOUNTERS
78Print pthread event counters before the program terminates.
79.It Ev PTHREAD_DEBUGLOG
80Write debugging information into shared memory.
81This debug log can be parsed and printed by the
82.Nm debuglog
83program found in
84.Pa src/lib/libpthread/debuglog.c .
85.\" Following commented out since it will be removed shortly.
86.\".It Ev PTHREAD_PREEMPT
87.\"Generate upcalls on a vanilla
88.\".Fn preempt .
89.It Ev PTHREAD_RRTIME
90The current version of the system does not inspect this variable.
91It is reserved for use by the
92.Nm
93library.
94.It Ev PTHREAD_STACKSIZE
95Integer value giving the stack size in kilobytes.
96This allows to set a smaller stack size than the default stack size.
97The default stack size is the current limit on the stack size as
98set with the shell's command to change limits
99.Ic ( limit
100for
101.Xr csh 1 ,
102or
103.Ic ulimit
104for
105.Xr sh 1 ) .
106.El
107.Sh SEE ALSO
108.Xr pthread_attr 3 ,
109.Xr pthread_barrier_destroy 3 ,
110.Xr pthread_barrier_init 3 ,
111.Xr pthread_barrier_wait 3 ,
112.Xr pthread_barrierattr 3 ,
113.Xr pthread_cancel 3 ,
114.Xr pthread_cleanup_push 3 ,
115.Xr pthread_cond_broadcast 3 ,
116.Xr pthread_cond_destroy 3 ,
117.Xr pthread_cond_init 3 ,
118.Xr pthread_cond_wait 3 ,
119.Xr pthread_condattr 3 ,
120.Xr pthread_create 3 ,
121.Xr pthread_detach 3 ,
122.Xr pthread_equal 3 ,
123.Xr pthread_exit 3 ,
124.Xr pthread_getspecific 3 ,
125.Xr pthread_join 3 ,
126.Xr pthread_key_create 3 ,
127.Xr pthread_key_delete 3 ,
128.Xr pthread_kill 3 ,
129.Xr pthread_mutex_destroy 3 ,
130.Xr pthread_mutex_init 3 ,
131.Xr pthread_mutex_lock 3 ,
132.Xr pthread_mutex_unlock 3 ,
133.Xr pthread_mutexattr 3 ,
134.Xr pthread_once 3 ,
135.Xr pthread_rwlock_destroy 3 ,
136.Xr pthread_rwlock_init 3 ,
137.Xr pthread_rwlock_rdlock 3 ,
138.Xr pthread_rwlock_unlock 3 ,
139.Xr pthread_rwlock_wrlock 3 ,
140.Xr pthread_rwlockattr 3 ,
141.Xr pthread_schedparam 3 ,
142.Xr pthread_self 3 ,
143.Xr pthread_setspecific 3 ,
144.Xr pthread_sigmask 3 ,
145.Xr pthread_spin_destroy 3 ,
146.Xr pthread_spin_init 3 ,
147.Xr pthread_spin_lock 3 ,
148.Xr pthread_spin_unlock 3 ,
149.Xr pthread_testcancel 3
150.Sh STANDARDS
151The
152.Nm
153library conforms to
154.St -p1003.1-2001 .
155