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