Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
Developer Support
QNX Documentation Library
QNX Developer Support

QNX Developer Support

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

[Previous] [Contents] [Index] [Next]

pthread_join()

Join thread

Synopsis:

#include <pthread.h>

int pthread_join( pthread_t thread,
                  void** value_ptr );

Arguments:

thread
The target thread whose termination you're waiting for.
value_ptr
NULL, or a pointer to a location where the function can store the value passed to pthread_exit() by the target thread.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pthread_join() function blocks the calling thread until the target thread thread terminates, unless thread has already terminated. If value_ptr is non-NULL and pthread_join() returns successfully, then the value passed to pthread_exit() by the target thread is placed in value_ptr. If the target thread has been canceled then value_ptr is set to PTHREAD_CANCELED.


Note: The non-POSIX pthread_timedjoin() function is similar to pthread_join(), except that an error is returned if the join doesn't occur before a given time.

The target thread must be joinable. Multiple pthread_join(), pthread_timedjoin(), ThreadJoin(), and ThreadJoin_r() calls on the same target thread aren't allowed. When pthread_join() returns successfully, the target thread has been terminated.

Returns:

EOK
Success.
EBUSY
The thread thread is already being joined.
EDEADLK
The thread thread is the calling thread.
EFAULT
A fault occurred trying to access the buffers provided.
EINVAL
The thread thread isn't joinable.
ESRCH
The thread thread doesn't exist.

Classification:

POSIX 1003.1 THR

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

pthread_create(), pthread_detach(), pthread_exit(), pthread_timedjoin(), ThreadJoin(), ThreadJoin_r()


[Previous] [Contents] [Index] [Next]