]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/pthread_join.3
fanotify_init.2, fanotify.7: Document FAN_REPORT_TID
[thirdparty/man-pages.git] / man3 / pthread_join.3
index 00eafb967e89bebb95dcd885551b6b4c263099a9..2245225deec7810ce9ca6f7bdc057185f5b215bc 100644 (file)
 .\" the source, must acknowledge the copyright and authors of this work.
 .\" %%%LICENSE_END
 .\"
-.TH PTHREAD_JOIN 3 2008-11-27 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_JOIN 3 2017-09-15 "Linux" "Linux Programmer's Manual"
 .SH NAME
 pthread_join \- join with a terminated thread
 .SH SYNOPSIS
 .nf
 .B #include <pthread.h>
-
+.PP
 .BI "int pthread_join(pthread_t " thread ", void **" retval );
 .fi
-.sp
+.PP
 Compile and link with \fI\-pthread\fP.
 .SH DESCRIPTION
 The
@@ -46,7 +46,7 @@ returns immediately.
 The thread specified by
 .I thread
 must be joinable.
-
+.PP
 If
 .I retval
 is not NULL, then
@@ -55,12 +55,12 @@ copies the exit status of the target thread
 (i.e., the value that the target thread supplied to
 .BR pthread_exit (3))
 into the location pointed to by
-.IR *retval .
+.IR retval .
 If the target thread was canceled, then
 .B PTHREAD_CANCELED
-is placed in
-.IR *retval .
-
+is placed in the location pointed to by
+.IR retval .
+.PP
 If multiple threads simultaneously try to join with the same thread,
 the results are undefined.
 If the thread calling
@@ -95,16 +95,32 @@ Another thread is already waiting to join with this thread.
 No thread with the ID
 .I thread
 could be found.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface      Attribute       Value
+T{
+.BR pthread_join ()
+T}     Thread safety   MT-Safe
+.TE
+.sp 1
 .SH CONFORMING TO
-POSIX.1-2001.
+POSIX.1-2001, POSIX.1-2008.
 .SH NOTES
 After a successful call to
 .BR pthread_join (),
 the caller is guaranteed that the target thread has terminated.
-
+The caller may then choose to do any clean-up that is required
+after termination of the thread (e.g., freeing memory or other
+resources that were allocated to the target thread).
+.PP
 Joining with a thread that has previously been joined results in
 undefined behavior.
-
+.PP
 Failure to join with a thread that is joinable
 (i.e., one that is not detached),
 produces a "zombie thread".
@@ -112,13 +128,13 @@ Avoid doing this,
 since each zombie thread consumes some system resources,
 and when enough zombie threads have accumulated,
 it will no longer be possible to create new threads (or processes).
-
+.PP
 There is no pthreads analog of
 .IR "waitpid(-1,\ &status,\ 0)" ,
 that is, "join with any terminated thread".
 If you believe you need this functionality,
 you probably need to rethink your application design.
-
+.PP
 All of the threads in a process are peers:
 any thread can join with any other thread in the process.
 .SH EXAMPLE