xref: /titanic_50/usr/src/man/man3c/thrd_join.3c (revision dcdfe824b3dff2df12578b936adf1daf000aa129)
1*dcdfe824SRobert Mustacchi.\"
2*dcdfe824SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3*dcdfe824SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4*dcdfe824SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5*dcdfe824SRobert Mustacchi.\" 1.0 of the CDDL.
6*dcdfe824SRobert Mustacchi.\"
7*dcdfe824SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8*dcdfe824SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9*dcdfe824SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10*dcdfe824SRobert Mustacchi.\"
11*dcdfe824SRobert Mustacchi.\"
12*dcdfe824SRobert Mustacchi.\" Copyright 2016 Joyent, Inc.
13*dcdfe824SRobert Mustacchi.\"
14*dcdfe824SRobert Mustacchi.Dd "Jan 13, 2015"
15*dcdfe824SRobert Mustacchi.Dt THRD_JOIN 3C
16*dcdfe824SRobert Mustacchi.Os
17*dcdfe824SRobert Mustacchi.Sh NAME
18*dcdfe824SRobert Mustacchi.Nm thrd_join
19*dcdfe824SRobert Mustacchi.Nd wait for thread termination
20*dcdfe824SRobert Mustacchi.Sh SYNOPSIS
21*dcdfe824SRobert Mustacchi.In threads.h
22*dcdfe824SRobert Mustacchi.Ft int
23*dcdfe824SRobert Mustacchi.Fo thrd_join
24*dcdfe824SRobert Mustacchi.Fa "thrd_t thrd"
25*dcdfe824SRobert Mustacchi.Fa "int *res"
26*dcdfe824SRobert Mustacchi.Fc
27*dcdfe824SRobert Mustacchi.Sh DESCRIPTION
28*dcdfe824SRobert MustacchiThe
29*dcdfe824SRobert Mustacchi.Fn thrd_join
30*dcdfe824SRobert Mustacchifunction suspends the exection of the current thread and waits for the
31*dcdfe824SRobert Mustacchithread indicated by
32*dcdfe824SRobert Mustacchi.Fa thrd
33*dcdfe824SRobert Mustacchito terminate and stores the exit status, as set by a call to
34*dcdfe824SRobert Mustacchi.Xr thrd_exit 3C ,
35*dcdfe824SRobert Mustacchifor that thread in
36*dcdfe824SRobert Mustacchi.Fa res ,
37*dcdfe824SRobert Mustacchiif
38*dcdfe824SRobert Mustacchi.Fa res
39*dcdfe824SRobert Mustacchiis non-null. The
40*dcdfe824SRobert Mustacchi.Fa thrd
41*dcdfe824SRobert Mustacchiargument must be a member of the current process and it cannot be
42*dcdfe824SRobert Mustacchidetached. If
43*dcdfe824SRobert Mustacchi.Fa thrd
44*dcdfe824SRobert Mustacchihas already terminated and another caller has not called
45*dcdfe824SRobert Mustacchi.Fn thrd_join
46*dcdfe824SRobert Mustacchithen the exit status will be returned to the caller without blocking
47*dcdfe824SRobert Mustacchiexecution of the thread.
48*dcdfe824SRobert Mustacchi.Pp
49*dcdfe824SRobert MustacchiIf multiple threads call
50*dcdfe824SRobert Mustacchi.Fn thrd_join
51*dcdfe824SRobert Mustacchion the same thread, then both will be suspended until that thread
52*dcdfe824SRobert Mustacchiterminates; however, only one thread will return successfully and obtain
53*dcdfe824SRobert Mustacchithe actual status and the other will instead return with an error.
54*dcdfe824SRobert Mustacchi.Pp
55*dcdfe824SRobert MustacchiFor additional information on the thread joining interfaces supported by
56*dcdfe824SRobert Mustacchithe system, see
57*dcdfe824SRobert Mustacchi.Xr pthread_join 3C
58*dcdfe824SRobert Mustacchiand
59*dcdfe824SRobert Mustacchi.Xr thr_join 3C .
60*dcdfe824SRobert Mustacchi.Sh RETURN_VALUES
61*dcdfe824SRobert MustacchiUpon successful completion, the
62*dcdfe824SRobert Mustacchi.Fn thrd_join
63*dcdfe824SRobert Mustacchifunction returns
64*dcdfe824SRobert Mustacchi.Sy thrd_success
65*dcdfe824SRobert Mustacchiand if
66*dcdfe824SRobert Mustacchi.Fa res
67*dcdfe824SRobert Mustacchiis a non-null pointer, it will be filled in with the exit status of
68*dcdfe824SRobert Mustacchi.Xr thrd .
69*dcdfe824SRobert MustacchiIf an error occurs,
70*dcdfe824SRobert Mustacchi.Sy thrd_error
71*dcdfe824SRobert Mustacchiwill be returned.
72*dcdfe824SRobert Mustacchi.Sh INTERFACE STABILITY
73*dcdfe824SRobert Mustacchi.Sy Standard
74*dcdfe824SRobert Mustacchi.Sh MT-LEVEL
75*dcdfe824SRobert Mustacchi.Sy MT-Safe
76*dcdfe824SRobert Mustacchi.Sh SEE ALSO
77*dcdfe824SRobert Mustacchi.Xr pthread_join 3C ,
78*dcdfe824SRobert Mustacchi.Xr thrd_create 3C ,
79*dcdfe824SRobert Mustacchi.Xr thrd_detach 3C ,
80*dcdfe824SRobert Mustacchi.Xr attributes 5 ,
81*dcdfe824SRobert Mustacchi.Xr threads 5
82