36.2.4.3 Wait for a thread to terminate

The GNU C Library provides several extensions to the pthread_join function.

Function: int pthread_tryjoin_np (pthread_t *thread, void **thread_return)

Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock | See POSIX Safety Concepts.

Behaves like pthread_join except that it will return EBUSY immediately if the thread specified by thread has not yet terminated.

Function: int pthread_timedjoin_np (pthread_t *thread, void **thread_return, const struct timespec *abstime)

Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock | See POSIX Safety Concepts.

Behaves like pthread_tryjoin_np except that it will block until the absolute time abstime measured against CLOCK_REALTIME is reached if the thread has not terminated by that time and return EBUSY. If abstime is equal to NULL then the function will wait forever in the same way as pthread_join.

Function: int pthread_clockjoin_np (pthread_t *thread, void **thread_return, clockid_t clockid, const struct timespec *abstime)

Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock | See POSIX Safety Concepts.

Behaves like pthread_timedjoin_np except that the absolute time in abstime is measured against the clock specified by clockid. Currently, clockid must be either CLOCK_MONOTONIC or CLOCK_REALTIME.

The sem_clockwait function also works using a clockid_t argument. See POSIX Semaphores.