1.\" $NetBSD: pthread_join.3,v 1.3 2003/07/04 11:47:03 wiz Exp $ 2.\" 3.\" Copyright (c) 2002 The NetBSD Foundation, Inc. 4.\" All rights reserved. 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 3. Neither the name of The NetBSD Foundation nor the names of its 14.\" contributors may be used to endorse or promote products derived 15.\" from this software without specific prior written permission. 16.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 17.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 18.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 20.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26.\" POSSIBILITY OF SUCH DAMAGE. 27.\" 28.\" Copyright (c) 1996-1998 John Birrell <jb@cimlogic.com.au>. 29.\" All rights reserved. 30.\" 31.\" Redistribution and use in source and binary forms, with or without 32.\" modification, are permitted provided that the following conditions 33.\" are met: 34.\" 1. Redistributions of source code must retain the above copyright 35.\" notice, this list of conditions and the following disclaimer. 36.\" 2. Redistributions in binary form must reproduce the above copyright 37.\" notice, this list of conditions and the following disclaimer in the 38.\" documentation and/or other materials provided with the distribution. 39.\" 3. All advertising materials mentioning features or use of this software 40.\" must display the following acknowledgement: 41.\" This product includes software developed by John Birrell. 42.\" 4. Neither the name of the author nor the names of any co-contributors 43.\" may be used to endorse or promote products derived from this software 44.\" without specific prior written permission. 45.\" 46.\" THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND 47.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 48.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 49.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 50.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 51.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 52.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 53.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 54.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 55.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 56.\" SUCH DAMAGE. 57.\" 58.\" $FreeBSD: src/lib/libpthread/man/pthread_join.3,v 1.13 2002/09/16 19:29:28 mini Exp $ 59.\" 60.Dd January 30, 2003 61.Dt PTHREAD_JOIN 3 62.Os 63.Sh NAME 64.Nm pthread_join 65.Nd wait for thread termination 66.Sh LIBRARY 67.Lb libpthread 68.Sh SYNOPSIS 69.In pthread.h 70.Ft int 71.Fn pthread_join "pthread_t thread" "void **value_ptr" 72.Sh DESCRIPTION 73The 74.Fn pthread_join 75function suspends execution of the calling thread until the target 76.Fa thread 77terminates unless the target 78.Fa thread 79has already terminated. 80.Pp 81On return from a successful 82.Fn pthread_join 83call with a non-NULL 84.Fa value_ptr 85argument, the value passed to 86.Fn pthread_exit 87by the terminating thread is stored in the location referenced by 88.Fa value_ptr . 89When a 90.Fn pthread_join 91returns successfully, the target thread has been terminated. 92The results 93of multiple simultaneous calls to 94.Fn pthread_join 95specifying the same target thread are undefined. 96If the thread calling 97.Fn pthread_join 98is cancelled, then the target thread is not detached. 99.Pp 100A thread that has exited but remains unjoined counts against 101.Dv _POSIX_THREAD_THREADS_MAX . 102.Sh RETURN VALUES 103If successful, the 104.Fn pthread_join 105function will return zero. 106Otherwise an error number will be returned to 107indicate the error. 108.Sh ERRORS 109.Fn pthread_join 110shall fail if: 111.Bl -tag -width Er 112.It Bq Er EINVAL 113The value specified by 114.Fa thread 115does not refer to a joinable thread. 116.It Bq Er ESRCH 117No thread could be found corresponding to that specified by the given 118thread ID, 119.Fa thread . 120.El 121.Pp 122.Fn pthread_join 123may fail if: 124.Bl -tag -width Er 125.It Bq Er EDEADLK 126A deadlock was detected or the value of 127.Fa thread 128specifies the calling thread. 129.El 130.Sh SEE ALSO 131.Xr wait 2 , 132.Xr pthread_create 3 133.Sh STANDARDS 134.Fn pthread_join 135conforms to 136.St -p1003.1-96 . 137