1.\" $NetBSD: pthread.3,v 1.3 2003/11/27 16:30:54 cl 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 November 27, 2003 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 is an implementation of the standard 50.Tn POSIX 51threads library using the Scheduler Activations framework 52in the 53.Nx 54kernel, providing a kernel-supported MxN scheduling system. 55.Sh ENVIRONMENT 56.Bl -tag -width PTHREAD_DEBUGCOUNTERSXX -compact 57.It Ev PTHREAD_DIAGASSERT 58Possible values are any combinations of: 59.Bl -tag -width ignoreXX -offset indent -compact 60.It Sy A 61Ignore errors. 62.It Sy a 63Abort on errors, creating a core dump for further debugging. 64.It Sy E 65Do not log errors to stdout. 66.It Sy e 67Log errors to stdout. 68.It Sy L 69Do not log errors via 70.Xr syslogd 8 . 71.It Sy l 72Log errors via 73.Xr syslogd 8 . 74.El 75.It Ev PTHREAD_DEBUGCOUNTERS 76Print pthread event counters before the program terminates. 77.It Ev PTHREAD_DEBUGLOG 78Write debugging information into shared memory. 79This debug log can be parsed and printed by the 80.Nm debuglog 81program found in 82.Pa src/lib/libpthread/debuglog.c . 83.\" Following commented out since it will be removed shortly. 84.\".It Ev PTHREAD_PREEMPT 85.\"Generate upcalls on a vanilla 86.\".Fn preempt . 87.It Ev PTHREAD_RRTIME 88Integer value giving the round-robin interval in ms. 89The default is 100. 90If set to 0, timer-based round-robin scheduling is disabled. 91.It Ev PTHREAD_STACKSIZE 92Integer value giving the stack size in kilobytes. 93This allows to set a smaller stack size than the default stack size. 94The default stack size is the current limit on the stack size as 95set with the shell's command to change limits 96.Ic ( limit 97for 98.Xr csh 1 , 99or 100.Ic ulimit 101for 102.Xr sh 1 ) . 103.El 104.Sh SEE ALSO 105.Xr pthread_attr 3 , 106.Xr pthread_barrier_destroy 3 , 107.Xr pthread_barrier_init 3 , 108.Xr pthread_barrier_wait 3 , 109.Xr pthread_barrierattr 3 , 110.Xr pthread_cancel 3 , 111.Xr pthread_cleanup_push 3 , 112.Xr pthread_cond_broadcast 3 , 113.Xr pthread_cond_destroy 3 , 114.Xr pthread_cond_init 3 , 115.Xr pthread_cond_wait 3 , 116.Xr pthread_condattr 3 , 117.Xr pthread_create 3 , 118.Xr pthread_detach 3 , 119.Xr pthread_equal 3 , 120.Xr pthread_exit 3 , 121.Xr pthread_getspecific 3 , 122.Xr pthread_join 3 , 123.Xr pthread_key_create 3 , 124.Xr pthread_key_delete 3 , 125.Xr pthread_kill 3 , 126.Xr pthread_mutex_destroy 3 , 127.Xr pthread_mutex_init 3 , 128.Xr pthread_mutex_lock 3 , 129.Xr pthread_mutex_unlock 3 , 130.Xr pthread_mutexattr 3 , 131.Xr pthread_once 3 , 132.Xr pthread_rwlock_destroy 3 , 133.Xr pthread_rwlock_init 3 , 134.Xr pthread_rwlock_rdlock 3 , 135.Xr pthread_rwlock_unlock 3 , 136.Xr pthread_rwlock_wrlock 3 , 137.Xr pthread_rwlockattr 3 , 138.Xr pthread_schedparam 3 , 139.Xr pthread_self 3 , 140.Xr pthread_setspecific 3 , 141.Xr pthread_sigmask 3 , 142.Xr pthread_spin_destroy 3 , 143.Xr pthread_spin_init 3 , 144.Xr pthread_spin_lock 3 , 145.Xr pthread_spin_unlock 3 , 146.Xr pthread_testcancel 3 147.Rs 148.%A Thomas E. Anderson 149.%A Brian N. Bershad 150.%A Edward D. Lazowska 151.%A Henry M. Levy 152.%T "Scheduler Activations: Effective Kernel Support for the \ 153User-Level Management of Parallelism" 154.%J ACM Transactions on Computer Systems 155.%V Vol. 10 156.%N No. 1 157.%D February 1992 158.%P 53-79 159.Re 160.Rs 161.%A Nathan J. Williams 162.%T "An Implementation of Scheduler Activations on the NetBSD \ 163Operating System" 164.%J "Proceedings of the FREENIX Track: 2002 USENIX Annual Technical \ 165Conference (FREENIX '02)" 166.%D 2002 167.%O http://www.mit.edu/people/nathanw/usenix/ 168.Re 169.Sh STANDARDS 170The 171.Nm 172library conforms to 173.St -p1003.1-2001 . 174.Sh AUTHORS 175.An Nathan J. Williams 176.Aq nathanw@NetBSD.org 177