| Skip Navigation Links | |
| Exit Print View | |
![]() | man pages section 3: Basic Library Functions Oracle Solaris 11 Information Library |
enable_extended_FILE_stdio(3C)
posix_spawnattr_getschedparam(3C)
posix_spawnattr_getschedpolicy(3C)
posix_spawnattr_getsigdefault(3C)
posix_spawnattr_getsigignore_np(3C)
posix_spawnattr_getsigmask(3C)
posix_spawnattr_setschedparam(3C)
posix_spawnattr_setschedpolicy(3C)
posix_spawnattr_setsigdefault(3C)
posix_spawnattr_setsigignore_np(3C)
posix_spawnattr_setsigmask(3C)
posix_spawn_file_actions_addclose(3C)
posix_spawn_file_actions_addclosefrom_np(3C)
posix_spawn_file_actions_adddup2(3C)
posix_spawn_file_actions_addopen(3C)
posix_spawn_file_actions_destroy(3C)
posix_spawn_file_actions_init(3C)
pthread_attr_getdetachstate(3C)
pthread_attr_getinheritsched(3C)
pthread_attr_getschedparam(3C)
pthread_attr_getschedpolicy(3C)
pthread_attr_setdetachstate(3C)
pthread_attr_setinheritsched(3C)
pthread_attr_setschedparam(3C)
pthread_attr_setschedpolicy(3C)
pthread_barrierattr_destroy(3C)
pthread_barrierattr_getpshared(3C)
pthread_barrierattr_setpshared(3C)
pthread_condattr_getpshared(3C)
pthread_condattr_setpshared(3C)
pthread_cond_reltimedwait_np(3C)
pthread_key_create_once_np(3C)
pthread_mutexattr_getprioceiling(3C)
pthread_mutexattr_getprotocol(3C)
pthread_mutexattr_getpshared(3C)
pthread_mutexattr_getrobust(3C)
pthread_mutexattr_setprioceiling(3C)
pthread_mutexattr_setprotocol(3C)
pthread_mutexattr_setpshared(3C)
pthread_mutexattr_setrobust(3C)
pthread_mutex_getprioceiling(3C)
pthread_mutex_reltimedlock_np(3C)
pthread_mutex_setprioceiling(3C)
pthread_rwlockattr_destroy(3C)
pthread_rwlockattr_getpshared(3C)
pthread_rwlockattr_setpshared(3C)
pthread_rwlock_reltimedrdlock_np(3C)
pthread_rwlock_reltimedwrlock_np(3C)
pthread_rwlock_timedrdlock(3C)
pthread_rwlock_timedwrlock(3C)
rctlblk_get_enforced_value(3C)
- wait for thread termination
cc –mt [flag... ]file...[library... ]#include <thread.h>intthr_join(thread_tthread,thread_t *departed,void **status);
Thethr_join() function suspends processing of the calling thread until the targetthreadcompletes. Thethread argument must be a member of the current processand cannot be a detached thread. Seethr_create(3C).
If two or more threads wait for the same thread to complete,all will suspend processing until the thread has terminated, and then onethread will return successfully and the others will return with an errorofESRCH. Thethr_join() function will not block processing of the calling threadif the targetthread has already terminated.
If athr_join() call returns successfully with a non-nullstatus argument, thevalue passed tothr_exit(3C) by the terminating thread will be placed in thelocation referenced bystatus.
If the targetthread ID is0,thr_join() finds and returnsthe status of a terminated undetached thread in the process. If nosuch thread exists, it suspends processing of the calling thread until a threadfor which no other thread is waiting enters that state, at whichtime it returns successfully, or until all other threads in the processare either daemon threads or threads waiting inthr_join(), in which caseit returnsEDEADLK. SeeNOTES.
Ifdeparted is notNULL, it points to a location that isset to the ID of the terminated thread ifthr_join() returns successfully.
If successful,thr_join() returns0. Otherwise, an error number is returned toindicate the error.
A joining deadlock would occur, such as when a thread attempts to wait for itself, or the calling thread is waiting for any thread to exit and only daemon threads or waiting threads exist in the process.
No undetached thread could be found corresponding to the given thread ID.
Seeattributes(5) for descriptions of the following attributes:
|
thr_create(3C),thr_exit(3C),wait(3C),attributes(5),standards(5)
Usingthr_join(3C) in the following syntax,
while (thr_join(0, NULL, NULL) == 0);
will wait for the termination of all non-daemon threads, excluding threads that arethemselves waiting inthr_join().
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices | ![]() ![]() |