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