.\" $OpenBSD: pthread_attr_setdetachstate.3,v 1.6 2003/05/08 09:01:15 jmc Exp $
.\" Manual page derived from TOG's UNIX98 documentation.
.\"
.\"  David Leonard, 2000. Public Domain.
.\"
.Dd January 6, 2000
.Dt PTHREAD_ATTR_SETDETACHSTATE 3
.Os
.Sh NAME
.Nm pthread_attr_setdetachstate ,
.Nm pthread_attr_getdetachstate
.Nd set and get detachstate attribute
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_attr_setdetachstate "pthread_attr_t *attr" "int detachstate"
.Ft int
.Fn pthread_attr_getdetachstate "pthread_attr_t *attr" "int *detachstate"
.Sh DESCRIPTION
The
.Va detachstate
attribute controls whether the thread is created in
a detached state.
If the thread is created detached, then use of
the ID of the newly created thread by the
.Xr pthread_detach 3
or
.Xr pthread_join 3
function is an error.
.Pp
The
.Fn pthread_attr_setdetachstate
and
.Fn pthread_attr_getdetachstate
functions, respectively, set and get the
.Va detachstate
attribute in the
.Fa attr
object.
.Pp
The
.Fa detachstate
can be set to either
.Dv PTHREAD_CREATE_DETACHED
or
.Dv PTHREAD_CREATE_JOINABLE .
A value of
.Dv PTHREAD_CREATE_DETACHED
causes
all threads created with
.Fa attr
to be in the detached state, whereas
using a value of
.Dv PTHREAD_CREATE_JOINABLE
causes all threads created
with
.Fa attr
to be in the joinable state.
The default value of the
.Va detachstate
attribute is
.Dv PTHREAD_CREATE_JOINABLE .
.Sh RETURN VALUES
Upon successful completion,
.Fn pthread_attr_setdetachstate
and
.Fn pthread_attr_getdetachstate
return a value of 0.
Otherwise, an error number is returned to indicate the error.
.Pp
The
.Fn pthread_attr_getdetachstate
function stores the value of the
.Va detachstate
attribute in
.Fa detachstate
if successful.
.Sh ERRORS
The
.Fn pthread_attr_setdetachstate
function will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
The value of
.Fa detachstate
was not valid.
.El
.Pp
These functions will not return an error code of
.Bq Er EINTR .
.Sh SEE ALSO
.Xr pthread_attr_init 3 ,
.Xr pthread_attr_setstackaddr 3 ,
.Xr pthread_attr_setstacksize 3 ,
.Xr pthread_create 3 ,
.Xr pthreads 3
.Sh STANDARDS
.Fn pthread_create
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 Second Edition 1996-07-12.