diff options
| author | Michael Kerrisk <mtk.manpages@gmail.com> | 2008-10-25 23:44:51 -0500 |
|---|---|---|
| committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2008-10-29 14:54:18 -0500 |
| commit | 681f0d67bb397b4c8e064a19d25a81a020d0639c (patch) | |
| tree | 0a683cb5664e5b3aab7456e2b4698524ce6e9a6f /man3 | |
| parent | bbb08de354174577d3f5ead1c6fb9ed866bd781f (diff) | |
| download | man-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.3 | 135 |
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) |
