xref: /freebsd-src/share/man/man3/pthread_attr.3 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
1c5e7e03aSRuslan Ermilov.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>.
24c089f4dSJason Evans.\" All rights reserved.
34c089f4dSJason Evans.\"
44c089f4dSJason Evans.\" Redistribution and use in source and binary forms, with or without
54c089f4dSJason Evans.\" modification, are permitted provided that the following conditions
64c089f4dSJason Evans.\" are met:
74c089f4dSJason Evans.\" 1. Redistributions of source code must retain the above copyright
84c089f4dSJason Evans.\"    notice(s), this list of conditions and the following disclaimer as
94c089f4dSJason Evans.\"    the first lines of this file unmodified other than the possible
104c089f4dSJason Evans.\"    addition of one or more copyright notices.
114c089f4dSJason Evans.\" 2. Redistributions in binary form must reproduce the above copyright
124c089f4dSJason Evans.\"    notice(s), this list of conditions and the following disclaimer in
134c089f4dSJason Evans.\"    the documentation and/or other materials provided with the
144c089f4dSJason Evans.\"    distribution.
154c089f4dSJason Evans.\"
164c089f4dSJason Evans.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
174c089f4dSJason Evans.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
184c089f4dSJason Evans.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
194c089f4dSJason Evans.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
204c089f4dSJason Evans.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
214c089f4dSJason Evans.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
224c089f4dSJason Evans.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
234c089f4dSJason Evans.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
244c089f4dSJason Evans.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
254c089f4dSJason Evans.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
264c089f4dSJason Evans.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27*b6413b6dSPedro F. Giffuni.Dd August 17, 2018
284c089f4dSJason Evans.Dt PTHREAD_ATTR 3
294c089f4dSJason Evans.Os
304c089f4dSJason Evans.Sh NAME
312a53c5ecSAlexey Zelkin.Nm pthread_attr_init ,
322a53c5ecSAlexey Zelkin.Nm pthread_attr_destroy ,
334e44912cSAlfred Perlstein.Nm pthread_attr_setstack ,
344e44912cSAlfred Perlstein.Nm pthread_attr_getstack ,
352a53c5ecSAlexey Zelkin.Nm pthread_attr_setstacksize ,
362a53c5ecSAlexey Zelkin.Nm pthread_attr_getstacksize ,
37aa33517eSJason Evans.Nm pthread_attr_setguardsize ,
38aa33517eSJason Evans.Nm pthread_attr_getguardsize ,
392a53c5ecSAlexey Zelkin.Nm pthread_attr_setstackaddr ,
402a53c5ecSAlexey Zelkin.Nm pthread_attr_getstackaddr ,
412a53c5ecSAlexey Zelkin.Nm pthread_attr_setdetachstate ,
422a53c5ecSAlexey Zelkin.Nm pthread_attr_getdetachstate ,
432a53c5ecSAlexey Zelkin.Nm pthread_attr_setinheritsched ,
442a53c5ecSAlexey Zelkin.Nm pthread_attr_getinheritsched ,
452a53c5ecSAlexey Zelkin.Nm pthread_attr_setschedparam ,
462a53c5ecSAlexey Zelkin.Nm pthread_attr_getschedparam ,
472a53c5ecSAlexey Zelkin.Nm pthread_attr_setschedpolicy ,
482a53c5ecSAlexey Zelkin.Nm pthread_attr_getschedpolicy ,
492a53c5ecSAlexey Zelkin.Nm pthread_attr_setscope ,
502a53c5ecSAlexey Zelkin.Nm pthread_attr_getscope
514c089f4dSJason Evans.Nd thread attribute operations
524c089f4dSJason Evans.Sh LIBRARY
53ec7452f1SRuslan Ermilov.Lb libpthread
544c089f4dSJason Evans.Sh SYNOPSIS
5532eef9aeSRuslan Ermilov.In pthread.h
564c089f4dSJason Evans.Ft int
574c089f4dSJason Evans.Fn pthread_attr_init "pthread_attr_t *attr"
584c089f4dSJason Evans.Ft int
594c089f4dSJason Evans.Fn pthread_attr_destroy "pthread_attr_t *attr"
604c089f4dSJason Evans.Ft int
614e44912cSAlfred Perlstein.Fn pthread_attr_setstack "pthread_attr_t *attr" " void *stackaddr" "size_t stacksize"
624e44912cSAlfred Perlstein.Ft int
634e44912cSAlfred Perlstein.Fn pthread_attr_getstack "const pthread_attr_t * restrict attr" "void ** restrict stackaddr" "size_t * restrict stacksize"
644e44912cSAlfred Perlstein.Ft int
654c089f4dSJason Evans.Fn pthread_attr_setstacksize "pthread_attr_t *attr" "size_t stacksize"
664c089f4dSJason Evans.Ft int
67*b6413b6dSPedro F. Giffuni.Fn pthread_attr_getstacksize "const pthread_attr_t *restrict attr" "size_t *restrict stacksize"
684c089f4dSJason Evans.Ft int
69aa33517eSJason Evans.Fn pthread_attr_setguardsize "pthread_attr_t *attr" "size_t guardsize"
70aa33517eSJason Evans.Ft int
71*b6413b6dSPedro F. Giffuni.Fn pthread_attr_getguardsize "const pthread_attr_t * restrict attr" "size_t * restrict guardsize"
72aa33517eSJason Evans.Ft int
734c089f4dSJason Evans.Fn pthread_attr_setstackaddr "pthread_attr_t *attr" "void *stackaddr"
744c089f4dSJason Evans.Ft int
754c089f4dSJason Evans.Fn pthread_attr_getstackaddr "const pthread_attr_t *attr" "void **stackaddr"
764c089f4dSJason Evans.Ft int
774c089f4dSJason Evans.Fn pthread_attr_setdetachstate "pthread_attr_t *attr" "int detachstate"
784c089f4dSJason Evans.Ft int
794c089f4dSJason Evans.Fn pthread_attr_getdetachstate "const pthread_attr_t *attr" "int *detachstate"
804c089f4dSJason Evans.Ft int
814c089f4dSJason Evans.Fn pthread_attr_setinheritsched "pthread_attr_t *attr" "int inheritsched"
824c089f4dSJason Evans.Ft int
83*b6413b6dSPedro F. Giffuni.Fn pthread_attr_getinheritsched "const pthread_attr_t *restrict attr" "int *restrct inheritsched"
844c089f4dSJason Evans.Ft int
854c089f4dSJason Evans.Fn pthread_attr_setschedparam "pthread_attr_t *attr" "const struct sched_param *param"
864c089f4dSJason Evans.Ft int
87ce8973f0SBruce Evans.Fn pthread_attr_getschedparam "const pthread_attr_t *attr" "struct sched_param *param"
884c089f4dSJason Evans.Ft int
894c089f4dSJason Evans.Fn pthread_attr_setschedpolicy "pthread_attr_t *attr" "int policy"
904c089f4dSJason Evans.Ft int
91*b6413b6dSPedro F. Giffuni.Fn pthread_attr_getschedpolicy "const pthread_attr_t *restrict attr" "int *restrict policy"
924c089f4dSJason Evans.Ft int
934c089f4dSJason Evans.Fn pthread_attr_setscope "pthread_attr_t *attr" "int contentionscope"
944c089f4dSJason Evans.Ft int
95*b6413b6dSPedro F. Giffuni.Fn pthread_attr_getscope "const pthread_attr_t *restrict attr" "int *restrict contentionscope"
964c089f4dSJason Evans.Sh DESCRIPTION
974c089f4dSJason EvansThread attributes are used to specify parameters to
984c089f4dSJason Evans.Fn pthread_create .
994c089f4dSJason EvansOne attribute object can be used in multiple calls to
1004c089f4dSJason Evans.Fn pthread_create ,
1014c089f4dSJason Evanswith or without modifications between calls.
1022a53c5ecSAlexey Zelkin.Pp
1034c089f4dSJason EvansThe
1044c089f4dSJason Evans.Fn pthread_attr_init
1054c089f4dSJason Evansfunction initializes
1064c089f4dSJason Evans.Fa attr
1074c089f4dSJason Evanswith all the default thread attributes.
1082a53c5ecSAlexey Zelkin.Pp
1094c089f4dSJason EvansThe
1104c089f4dSJason Evans.Fn pthread_attr_destroy
1114c089f4dSJason Evansfunction destroys
1124c089f4dSJason Evans.Fa attr .
1132a53c5ecSAlexey Zelkin.Pp
1144c089f4dSJason EvansThe
1154c089f4dSJason Evans.Fn pthread_attr_set*
1164c089f4dSJason Evansfunctions set the attribute that corresponds to each function name.
1172a53c5ecSAlexey Zelkin.Pp
1184c089f4dSJason EvansThe
1194c089f4dSJason Evans.Fn pthread_attr_get*
1204c089f4dSJason Evansfunctions copy the value of the attribute that corresponds to each function name
1214c089f4dSJason Evansto the location pointed to by the second function parameter.
1224c089f4dSJason Evans.Sh RETURN VALUES
1234c089f4dSJason EvansIf successful, these functions return 0.
1244c089f4dSJason EvansOtherwise, an error number is returned to indicate the error.
1254c089f4dSJason Evans.Sh ERRORS
1266f673fd1SPhilippe CharnierThe
1274c089f4dSJason Evans.Fn pthread_attr_init
1286f673fd1SPhilippe Charnierfunction will fail if:
1294c089f4dSJason Evans.Bl -tag -width Er
1304c089f4dSJason Evans.It Bq Er ENOMEM
1314c089f4dSJason EvansOut of memory.
1324c089f4dSJason Evans.El
1332a53c5ecSAlexey Zelkin.Pp
1346f673fd1SPhilippe CharnierThe
1354c089f4dSJason Evans.Fn pthread_attr_destroy
1366f673fd1SPhilippe Charnierfunction will fail if:
1374c089f4dSJason Evans.Bl -tag -width Er
1384c089f4dSJason Evans.It Bq Er EINVAL
1394c089f4dSJason EvansInvalid value for
1404c089f4dSJason Evans.Fa attr .
14197f2978aSJason Evans.El
1422a53c5ecSAlexey Zelkin.Pp
1436f673fd1SPhilippe CharnierThe
1444c089f4dSJason Evans.Fn pthread_attr_setstacksize
145ace5be68SRuslan Ermilovand
1464e44912cSAlfred Perlstein.Fn pthread_attr_setstack
147ace5be68SRuslan Ermilovfunctions will fail if:
1484c089f4dSJason Evans.Bl -tag -width Er
1494c089f4dSJason Evans.It Bq Er EINVAL
1504c089f4dSJason Evans.Fa stacksize
1514c089f4dSJason Evansis less than
1524c089f4dSJason Evans.Dv PTHREAD_STACK_MIN .
1534c089f4dSJason Evans.El
1542a53c5ecSAlexey Zelkin.Pp
1556f673fd1SPhilippe CharnierThe
1564c089f4dSJason Evans.Fn pthread_attr_setdetachstate
1576f673fd1SPhilippe Charnierfunction will fail if:
1584c089f4dSJason Evans.Bl -tag -width Er
1594c089f4dSJason Evans.It Bq Er EINVAL
1604c089f4dSJason EvansInvalid value for
1614c089f4dSJason Evans.Fa detachstate .
1624c089f4dSJason Evans.El
1632a53c5ecSAlexey Zelkin.Pp
1646f673fd1SPhilippe CharnierThe
1654c089f4dSJason Evans.Fn pthread_attr_setinheritsched
1666f673fd1SPhilippe Charnierfunction will fail if:
1674c089f4dSJason Evans.Bl -tag -width Er
1684c089f4dSJason Evans.It Bq Er EINVAL
1694c089f4dSJason EvansInvalid value for
1704c089f4dSJason Evans.Fa attr .
1714c089f4dSJason Evans.El
1722a53c5ecSAlexey Zelkin.Pp
1736f673fd1SPhilippe CharnierThe
1744c089f4dSJason Evans.Fn pthread_attr_setschedparam
1756f673fd1SPhilippe Charnierfunction will fail if:
1764c089f4dSJason Evans.Bl -tag -width Er
1774c089f4dSJason Evans.It Bq Er EINVAL
1784c089f4dSJason EvansInvalid value for
1794c089f4dSJason Evans.Fa attr .
1804c089f4dSJason Evans.It Bq Er ENOTSUP
1814c089f4dSJason EvansInvalid value for
1824c089f4dSJason Evans.Fa param .
1834c089f4dSJason Evans.El
1842a53c5ecSAlexey Zelkin.Pp
1856f673fd1SPhilippe CharnierThe
1864c089f4dSJason Evans.Fn pthread_attr_setschedpolicy
1876f673fd1SPhilippe Charnierfunction will fail if:
1884c089f4dSJason Evans.Bl -tag -width Er
1894c089f4dSJason Evans.It Bq Er EINVAL
1904c089f4dSJason EvansInvalid value for
1914c089f4dSJason Evans.Fa attr .
1924c089f4dSJason Evans.It Bq Er ENOTSUP
1934c089f4dSJason EvansInvalid or unsupported value for
1944c089f4dSJason Evans.Fa policy .
1954c089f4dSJason Evans.El
1962a53c5ecSAlexey Zelkin.Pp
1976f673fd1SPhilippe CharnierThe
1984c089f4dSJason Evans.Fn pthread_attr_setscope
1996f673fd1SPhilippe Charnierfunction will fail if:
2004c089f4dSJason Evans.Bl -tag -width Er
2014c089f4dSJason Evans.It Bq Er EINVAL
2024c089f4dSJason EvansInvalid value for
2034c089f4dSJason Evans.Fa attr .
2044c089f4dSJason Evans.It Bq Er ENOTSUP
2054c089f4dSJason EvansInvalid or unsupported value for
2064c089f4dSJason Evans.Fa contentionscope .
2074c089f4dSJason Evans.El
2084c089f4dSJason Evans.Sh SEE ALSO
209777f8cebSXin LI.Xr pthread_attr_affinity_np 3 ,
210e52a1af2SBaptiste Daroussin.Xr pthread_attr_get_np 3 ,
2114c089f4dSJason Evans.Xr pthread_create 3
2124c089f4dSJason Evans.Sh STANDARDS
2134c089f4dSJason Evans.Fn pthread_attr_init ,
2144c089f4dSJason Evans.Fn pthread_attr_destroy ,
2154c089f4dSJason Evans.Fn pthread_attr_setstacksize ,
2164c089f4dSJason Evans.Fn pthread_attr_getstacksize ,
2174c089f4dSJason Evans.Fn pthread_attr_setstackaddr ,
2184c089f4dSJason Evans.Fn pthread_attr_getstackaddr ,
2194c089f4dSJason Evans.Fn pthread_attr_setdetachstate ,
2204c089f4dSJason Evansand
2214c089f4dSJason Evans.Fn pthread_attr_getdetachstate
2226f673fd1SPhilippe Charnierfunctions conform to
223589a5e34SRuslan Ermilov.St -p1003.1-96
2242a53c5ecSAlexey Zelkin.Pp
2256f673fd1SPhilippe CharnierThe
2264c089f4dSJason Evans.Fn pthread_attr_setinheritsched ,
2274c089f4dSJason Evans.Fn pthread_attr_getinheritsched ,
2284c089f4dSJason Evans.Fn pthread_attr_setschedparam ,
2294c089f4dSJason Evans.Fn pthread_attr_getschedparam ,
2304c089f4dSJason Evans.Fn pthread_attr_setschedpolicy ,
2314c089f4dSJason Evans.Fn pthread_attr_getschedpolicy ,
2324c089f4dSJason Evans.Fn pthread_attr_setscope ,
2334c089f4dSJason Evansand
2344c089f4dSJason Evans.Fn pthread_attr_getscope
2356f673fd1SPhilippe Charnierfunctions conform to
2362a53c5ecSAlexey Zelkin.St -susv2
237