thr_join(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

thr_join(3c)

thr_join(3C)             Standard C Library Functions             thr_join(3C)

NAME
       thr_join - wait for thread termination

SYNOPSIS
       #include <thread.h>

       int thr_join(thread_t thread, thread_t *departed, void **status);

DESCRIPTION
       The thr_join() function suspends processing of the calling thread until
       the  target  thread  completes. The thread argument must be a member of
       the current process and cannot  be  a  detached  thread.  See  thr_cre‐
       ate(3C).


       If  two  or more threads wait for the same thread to complete, all will
       suspend processing until the thread has terminated, and then one thread
       will return successfully and the others will return with  an  error  of
       ESRCH. The thr_join() function will not block processing of the calling
       thread if the target thread has already terminated.


       If  a thr_join() call returns successfully with a non-null status argu‐
       ment, the value passed to thr_exit(3C) by the terminating  thread  will
       be placed in the location referenced by status.


       If  the target thread  ID is 0, thr_join() finds and returns the status
       of a terminated undetached thread in the process. If no such thread ex‐
       ists, it suspends processing of the calling thread until a  thread  for
       which  no  other  thread is waiting enters that state, at which time it
       returns successfully, or until all other threads in the process are ei‐
       ther daemon threads or threads waiting in thr_join(), in which case  it
       returns EDEADLK. See NOTES.


       If  departed is not NULL, it points to a location that is set to the ID
       of the terminated thread if thr_join() returns successfully.

RETURN VALUES
       If successful, thr_join() returns 0. Otherwise, an error number is  re‐
       turned to indicate the error.

ERRORS
       EDEADLK    A  joining  deadlock  would occur, such as when a thread at‐
                  tempts 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.


       ESRCH      No undetached thread could be  found  corresponding  to  the
                  given thread ID.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ MT-LevelMT-Safe


SEE ALSO
       thr_create(3C), thr_exit(3C), wait(3C), attributes(7), standards(7)

NOTES
       Using thr_join in the following syntax,

         while (thr_join(0, NULL, NULL) == 0);



       will wait for the termination  of  all  non-daemon  threads,  excluding
       threads that are themselves waiting in thr_join().

Oracle Solaris 11.4               15 May 2014                     thr_join(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3