1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
<HTML
><HEAD
><TITLE
>pthread_join</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.64
"></HEAD
><BODY
CLASS="REFENTRY"
><H1
><A
NAME="AEN1"
>pthread_join</A
></H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN5"
></A
><H2
>Name</H2
>pthread_join -- create a thread</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN8"
></A
><H2
>Synopsis</H2
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
> #include <rtl_sched.h>
int <TT
CLASS="FUNCTION"
>pthread_join</TT
>(pthread_t <TT
CLASS="PARAMETER"
><I
>thread</I
></TT
>, void <TT
CLASS="PARAMETER"
><I
>**arg</I
></TT
>);</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN13"
></A
><H2
>DESCRIPTION</H2
><P
>This function is an RTLinux version of standard POSIX threads function.
<TT
CLASS="FUNCTION"
>pthread_join</TT
> suspends the calling thread until the target thread terminates.
If arg is not NULL, the return value of the target thread will be (*arg) on return. If the target
thread is terminated already, <TT
CLASS="FUNCTION"
>pthread_join</TT
> returns immediately.
On a non-failure return, the target thread is guaranteed to be terminated already. There is, of course,
no upper bound on how long this call may take. </P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN18"
></A
><H2
>RETURN VALUE</H2
><P
><TT
CLASS="FUNCTION"
>pthread_join</TT
> returns 0 on success and a non-zero error code on error.</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN22"
></A
><H2
>ERRORS</H2
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>[EINVAL]</DT
><DD
><P
>The target is not a joinable thread.
</P
></DD
><DT
>[ESRCH]</DT
><DD
><P
> No such thread.</P
></DD
><DT
>[EDADLK]</DT
><DD
><P
> The target thread is the calling thread. POSIX also uses this for when the OS
detects other deadlocks, but RTLinux does not try to detect deadlock. Just write good code..</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN37"
></A
><H2
>AUTHOR</H2
><P
>Victor Yodaiken (<A
HREF="mailto:support@fsmlabs.com"
TARGET="_top"
>support@fsmlabs.com</A
>)</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN41"
></A
><H2
>NOTES</H2
><P
><TT
CLASS="FUNCTION"
>pthread_join</TT
> is not all that useful at this time. Buttenhof's book on thread programming essentially suggests that you never use it. In future plans, we hope to use it for fault tolerance support.</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN45"
></A
><H2
>SEE ALSO</H2
><A
HREF="../susv2/xsh/pthread_join.html"
TARGET="_top"
>UNIX spec pthread_join(3)</A
>, <A
HREF="pthread_make_periodic_np.3.html"
TARGET="_top"
>pthread_make_periodic_np(3)</A
><P
>2001 FSMLabs Inc.</P
><P
>All rights reserved.</P
></DIV
></BODY
></HTML
>
|