aboutsummaryrefslogtreecommitdiffstats
path: root/man3
diff options
context:
space:
mode:
authorMichael Kerrisk <mtk.manpages@gmail.com>2008-10-25 23:44:51 -0500
committerMichael Kerrisk <mtk.manpages@gmail.com>2008-10-29 14:54:18 -0500
commit681f0d67bb397b4c8e064a19d25a81a020d0639c (patch)
tree0a683cb5664e5b3aab7456e2b4698524ce6e9a6f /man3
parentbbb08de354174577d3f5ead1c6fb9ed866bd781f (diff)
downloadman-pages-681f0d67bb397b4c8e064a19d25a81a020d0639c.tar.gz
pthread_tryjoin_np.3: New page for pthread_tryjoin_np(3) and pthread_timedjoin_np(3)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Diffstat (limited to 'man3')
-rw-r--r--man3/pthread_tryjoin_np.3135
1 files changed, 135 insertions, 0 deletions
diff --git a/man3/pthread_tryjoin_np.3 b/man3/pthread_tryjoin_np.3
new file mode 100644
index 0000000000..179e4b70fd
--- /dev/null
+++ b/man3/pthread_tryjoin_np.3
@@ -0,0 +1,135 @@
+.\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.TH PTHREAD_TRYJOIN_NP 3 2008-10-24 "Linux" "Linux Programmer's Manual"
+.SH NAME
+pthread_tryjoin_np, pthread_timedjoin_np \- try to join with a
+terminated thread
+.SH SYNOPSIS
+.nf
+.B #define _GNU_SOURCE
+.B #include <pthread.h>
+
+.BI "int pthread_tryjoin_np(pthread_t " thread ", void **" retval );
+
+.BI "int pthread_timedjoin_np(pthread_t " thread ", void **" retval ,
+.BR " const struct timespec *" abstime );
+.fi
+.sp
+Compile and link with \fI\-pthread\fP.
+.SH DESCRIPTION
+These functions operate in the same way as
+.BR pthread_join (3),
+except for the differences described on this page.
+
+The
+.BR pthread_tryjoin_np ()
+function performs a non-blocking join with the thread
+.IR thread ,
+returning the exit status of the thread in
+.IR *retval .
+If
+.I thread
+has not yet terminated, then instead of blocking, as is done by
+.BR pthread_join (3),
+the call returns an error.
+
+The
+.BR pthread_timedjoin_np ()
+function performs a join-with-timeout.
+If
+.I thread
+has not yet terminated,
+then the call blocks until a maximum time, specified in
+.IR abstime .
+If the timeout expires before
+.I thread
+terminates,
+the call returns an error.
+The
+.I abstime
+argument is a structure of the following form,
+specifying an absolute time measured since the Epoch (see
+.BR time (2)):
+
+.in +4n
+.nf
+struct timespec {
+ time_t tv_sec; /* seconds */
+ long tv_nsec; /* nanoseconds */
+};
+.fi
+.in
+.SH RETURN VALUE
+On success,
+these functions return 0;
+on error, they return an error number.
+.SH ERRORS
+These functions can fail with the same errors as
+.BR pthread_join (3).
+.BR pthread_tryjoin_np ()
+can in addition fail with the following error:
+.TP
+.B EBUSY
+.I thread
+had not yet terminated at the time of the call.
+.PP
+.BR pthread_timedjoin_np ()
+can in addition fail with the following error:
+.TP
+.BR ETIMEDOUT
+The call timed out before
+.I thread
+terminated.
+.PP
+.BR pthread_timedjoin_np ()
+never returns the error
+.BR EINTR .
+.SH VERSIONS
+These functions first appeared in glibc in version 2.3.3.
+.SH CONFORMING TO
+These functions are GNU-specific extensions.
+.SH EXAMPLE
+The following code waits to join for up to 5 seconds:
+
+.nf
+ struct timespec ts;
+ int s;
+
+ ...
+
+ if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
+ errExit("clock_gettime");
+
+ ts.tv_sec += 5;
+
+ s = pthread_timedjoin_np(thread, NULL, &ts);
+ if (s != 0) {
+ /* Handle error */
+ }
+.fi
+.SH SEE ALSO
+.BR clock_gettime (3),
+.BR pthread_join (3),
+.BR pthread_exit (3),
+.BR pthreads (7)