NAME
pthreadtryjoinnp, pthreadtimedjoinnp - try to join with a termi‐ nated thread SYNOPSIS
#define GNUSOURCE /* See featuretestmacros(7) */
#include
int pthreadtryjoinnp(pthreadt thread, void **retval); int pthreadtimedjoinnp(pthreadt thread, void **retval, const struct timespec *abstime); Compile and link with -pthread. DESCRIPTION These functions operate in the same way as pthreadjoin(3), except for the differences described on this page. The pthreadtryjoinnp() function performs a nonblocking join with the thread thread, returning the exit status of the thread in *retval. If thread has not yet terminated, then instead of blocking, as is done by pthreadjoin(3), the call returns an error.
The pthreadtimedjoinnp() function performs a join-with-timeout. If thread has not yet terminated, then the call blocks until a maximum time, specified in abstime. If the timeout expires before thread ter‐ minates, the call returns an error. The abstime argument is a struc‐ ture of the following form, specifying an absolute time measured since the Epoch (see time(2)): struct timespec { timet tvsec; /* seconds */ long tvnsec; /* nanoseconds */ }; RETURN VALUE On success, these functions return 0; on error, they return an error number. ERRORS These functions can fail with the same errors as pthreadjoin(3). pthreadtryjoinnp() can in addition fail with the following error: EBUSY thread had not yet terminated at the time of the call. pthreadtimedjoinnp() can in addition fail with the following error: ETIMEDOUT The call timed out before thread terminated. pthreadtimedjoinnp() never returns the error EINTR. VERSIONS These functions first appeared in glibc in version 2.3.3. CONFORMING TO These functions are nonstandard GNU extensions; hence the suffix "np" (nonportable) in the names. EXAMPLE The following code waits to join for up to 5 seconds: struct timespec ts; int s; ...
if (clockgettime(CLOCKREALTIME, &ts) == -1) { /* Handle error */ } ts.tvsec += 5; s = pthreadtimedjoinnp(thread, NULL, &ts); if (s != 0) { /* Handle error */ } SEE ALSO clockgettime(2), pthreadexit(3), pthreadjoin(3), pthreads(7) COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2010-09-10 PTHREADTRYJOINNP(3)