1610da160SSascha Wildner.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>. 2610da160SSascha Wildner.\" All rights reserved. 3610da160SSascha Wildner.\" 4610da160SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 5610da160SSascha Wildner.\" modification, are permitted provided that the following conditions 6610da160SSascha Wildner.\" are met: 7610da160SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 8610da160SSascha Wildner.\" notice(s), this list of conditions and the following disclaimer as 9610da160SSascha Wildner.\" the first lines of this file unmodified other than the possible 10610da160SSascha Wildner.\" addition of one or more copyright notices. 11610da160SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 12610da160SSascha Wildner.\" notice(s), this list of conditions and the following disclaimer in 13610da160SSascha Wildner.\" the documentation and/or other materials provided with the 14610da160SSascha Wildner.\" distribution. 15610da160SSascha Wildner.\" 16610da160SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY 17610da160SSascha Wildner.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18610da160SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19610da160SSascha Wildner.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE 20610da160SSascha Wildner.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21610da160SSascha Wildner.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22610da160SSascha Wildner.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23610da160SSascha Wildner.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24610da160SSascha Wildner.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25610da160SSascha Wildner.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26610da160SSascha Wildner.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27610da160SSascha Wildner.\" 2815acf97dSSascha Wildner.\" $FreeBSD: src/share/man/man3/pthread_attr.3,v 1.18 2007/10/22 10:08:00 ru Exp $ 29efcc44dcSSascha Wildner.\" 30*bb5b9becSSascha Wildner.Dd February 22, 2018 31610da160SSascha Wildner.Dt PTHREAD_ATTR 3 32610da160SSascha Wildner.Os 33610da160SSascha Wildner.Sh NAME 34610da160SSascha Wildner.Nm pthread_attr_init , 35610da160SSascha Wildner.Nm pthread_attr_destroy , 36610da160SSascha Wildner.Nm pthread_attr_setstack , 37610da160SSascha Wildner.Nm pthread_attr_getstack , 38610da160SSascha Wildner.Nm pthread_attr_setstacksize , 39610da160SSascha Wildner.Nm pthread_attr_getstacksize , 40a8dfb9a0SStathis Kamperis.Nm pthread_attr_setguardsize , 41a8dfb9a0SStathis Kamperis.Nm pthread_attr_getguardsize , 42610da160SSascha Wildner.Nm pthread_attr_setstackaddr , 43610da160SSascha Wildner.Nm pthread_attr_getstackaddr , 44610da160SSascha Wildner.Nm pthread_attr_setdetachstate , 45610da160SSascha Wildner.Nm pthread_attr_getdetachstate , 46610da160SSascha Wildner.Nm pthread_attr_setinheritsched , 47610da160SSascha Wildner.Nm pthread_attr_getinheritsched , 48610da160SSascha Wildner.Nm pthread_attr_setschedparam , 49610da160SSascha Wildner.Nm pthread_attr_getschedparam , 50610da160SSascha Wildner.Nm pthread_attr_setschedpolicy , 51610da160SSascha Wildner.Nm pthread_attr_getschedpolicy , 52610da160SSascha Wildner.Nm pthread_attr_setscope , 53610da160SSascha Wildner.Nm pthread_attr_getscope 54610da160SSascha Wildner.Nd thread attribute operations 55610da160SSascha Wildner.Sh LIBRARY 569964d5efSSascha Wildner.Lb libpthread 57610da160SSascha Wildner.Sh SYNOPSIS 58610da160SSascha Wildner.In pthread.h 59610da160SSascha Wildner.Ft int 60610da160SSascha Wildner.Fn pthread_attr_init "pthread_attr_t *attr" 61610da160SSascha Wildner.Ft int 62610da160SSascha Wildner.Fn pthread_attr_destroy "pthread_attr_t *attr" 63610da160SSascha Wildner.Ft int 64610da160SSascha Wildner.Fn pthread_attr_setstack "pthread_attr_t *attr" "void *stackaddr" "size_t stacksize" 65610da160SSascha Wildner.Ft int 66610da160SSascha Wildner.Fn pthread_attr_getstack "const pthread_attr_t * restrict attr" "void ** restrict stackaddr" "size_t * restrict stacksize" 67610da160SSascha Wildner.Ft int 68610da160SSascha Wildner.Fn pthread_attr_setstacksize "pthread_attr_t *attr" "size_t stacksize" 69610da160SSascha Wildner.Ft int 70*bb5b9becSSascha Wildner.Fn pthread_attr_getstacksize "const pthread_attr_t * restrict attr" "size_t * restrict stacksize" 71610da160SSascha Wildner.Ft int 72a8dfb9a0SStathis Kamperis.Fn pthread_attr_setguardsize "pthread_attr_t *attr" "size_t guardsize" 73a8dfb9a0SStathis Kamperis.Ft int 74*bb5b9becSSascha Wildner.Fn pthread_attr_getguardsize "const pthread_attr_t * restrict attr" "size_t * restrict guardsize" 75a8dfb9a0SStathis Kamperis.Ft int 76610da160SSascha Wildner.Fn pthread_attr_setstackaddr "pthread_attr_t *attr" "void *stackaddr" 77610da160SSascha Wildner.Ft int 78610da160SSascha Wildner.Fn pthread_attr_getstackaddr "const pthread_attr_t *attr" "void **stackaddr" 79610da160SSascha Wildner.Ft int 80610da160SSascha Wildner.Fn pthread_attr_setdetachstate "pthread_attr_t *attr" "int detachstate" 81610da160SSascha Wildner.Ft int 82610da160SSascha Wildner.Fn pthread_attr_getdetachstate "const pthread_attr_t *attr" "int *detachstate" 83610da160SSascha Wildner.Ft int 84610da160SSascha Wildner.Fn pthread_attr_setinheritsched "pthread_attr_t *attr" "int inheritsched" 85610da160SSascha Wildner.Ft int 86*bb5b9becSSascha Wildner.Fn pthread_attr_getinheritsched "const pthread_attr_t * restrict attr" "int * restrict inheritsched" 87610da160SSascha Wildner.Ft int 88*bb5b9becSSascha Wildner.Fn pthread_attr_setschedparam "pthread_attr_t * restrict attr" "const struct sched_param * restrict param" 89610da160SSascha Wildner.Ft int 90*bb5b9becSSascha Wildner.Fn pthread_attr_getschedparam "const pthread_attr_t * restrict attr" "struct sched_param * restrict param" 91610da160SSascha Wildner.Ft int 92610da160SSascha Wildner.Fn pthread_attr_setschedpolicy "pthread_attr_t *attr" "int policy" 93610da160SSascha Wildner.Ft int 94*bb5b9becSSascha Wildner.Fn pthread_attr_getschedpolicy "const pthread_attr_t * restrict attr" "int * restrict policy" 95610da160SSascha Wildner.Ft int 96610da160SSascha Wildner.Fn pthread_attr_setscope "pthread_attr_t *attr" "int contentionscope" 97610da160SSascha Wildner.Ft int 98*bb5b9becSSascha Wildner.Fn pthread_attr_getscope "const pthread_attr_t * restrict attr" "int * restrict contentionscope" 99610da160SSascha Wildner.Sh DESCRIPTION 100610da160SSascha WildnerThread attributes are used to specify parameters to 101610da160SSascha Wildner.Fn pthread_create . 102610da160SSascha WildnerOne attribute object can be used in multiple calls to 103610da160SSascha Wildner.Fn pthread_create , 104610da160SSascha Wildnerwith or without modifications between calls. 105610da160SSascha Wildner.Pp 106610da160SSascha WildnerThe 107610da160SSascha Wildner.Fn pthread_attr_init 108610da160SSascha Wildnerfunction initializes 109610da160SSascha Wildner.Fa attr 110610da160SSascha Wildnerwith all the default thread attributes. 111610da160SSascha Wildner.Pp 112610da160SSascha WildnerThe 113610da160SSascha Wildner.Fn pthread_attr_destroy 114610da160SSascha Wildnerfunction destroys 115610da160SSascha Wildner.Fa attr . 116610da160SSascha Wildner.Pp 117610da160SSascha WildnerThe 118610da160SSascha Wildner.Fn pthread_attr_set* 119610da160SSascha Wildnerfunctions set the attribute that corresponds to each function name. 120610da160SSascha Wildner.Pp 121610da160SSascha WildnerThe 122610da160SSascha Wildner.Fn pthread_attr_get* 123610da160SSascha Wildnerfunctions copy the value of the attribute that corresponds to each function name 124610da160SSascha Wildnerto the location pointed to by the second function parameter. 125610da160SSascha Wildner.Sh RETURN VALUES 126610da160SSascha WildnerIf successful, these functions return 0. 127610da160SSascha WildnerOtherwise, an error number is returned to indicate the error. 128610da160SSascha Wildner.Sh ERRORS 12915acf97dSSascha WildnerThe 130610da160SSascha Wildner.Fn pthread_attr_init 13115acf97dSSascha Wildnerfunction will fail if: 132610da160SSascha Wildner.Bl -tag -width Er 133610da160SSascha Wildner.It Bq Er ENOMEM 134610da160SSascha WildnerOut of memory. 135610da160SSascha Wildner.El 136610da160SSascha Wildner.Pp 13715acf97dSSascha WildnerThe 138610da160SSascha Wildner.Fn pthread_attr_destroy 13915acf97dSSascha Wildnerfunction will fail if: 140610da160SSascha Wildner.Bl -tag -width Er 141610da160SSascha Wildner.It Bq Er EINVAL 142610da160SSascha WildnerInvalid value for 143610da160SSascha Wildner.Fa attr . 144610da160SSascha Wildner.El 145610da160SSascha Wildner.Pp 146610da160SSascha WildnerThe 147610da160SSascha Wildner.Fn pthread_attr_setstacksize 148610da160SSascha Wildnerand 149610da160SSascha Wildner.Fn pthread_attr_setstack 150610da160SSascha Wildnerfunctions will fail if: 151610da160SSascha Wildner.Bl -tag -width Er 152610da160SSascha Wildner.It Bq Er EINVAL 153610da160SSascha Wildner.Fa stacksize 154610da160SSascha Wildneris less than 155610da160SSascha Wildner.Dv PTHREAD_STACK_MIN . 156610da160SSascha Wildner.El 157610da160SSascha Wildner.Pp 158a8dfb9a0SStathis KamperisThe 159a8dfb9a0SStathis Kamperis.Fn pthread_attr_setguardsize 160a8dfb9a0SStathis Kamperisand 161a8dfb9a0SStathis Kamperis.Fn pthread_attr_getguardsize 162a8dfb9a0SStathis Kamperisfunctions will fail if: 163a8dfb9a0SStathis Kamperis.Bl -tag -width Er 164a8dfb9a0SStathis Kamperis.It Bq Er EINVAL 165a8dfb9a0SStathis KamperisInvalid value for 166a8dfb9a0SStathis Kamperis.Fa guardsize . 167a8dfb9a0SStathis Kamperis.El 168a8dfb9a0SStathis Kamperis.Pp 16915acf97dSSascha WildnerThe 170610da160SSascha Wildner.Fn pthread_attr_setdetachstate 17115acf97dSSascha Wildnerfunction will fail if: 172610da160SSascha Wildner.Bl -tag -width Er 173610da160SSascha Wildner.It Bq Er EINVAL 174610da160SSascha WildnerInvalid value for 175610da160SSascha Wildner.Fa detachstate . 176610da160SSascha Wildner.El 177610da160SSascha Wildner.Pp 17815acf97dSSascha WildnerThe 179610da160SSascha Wildner.Fn pthread_attr_setinheritsched 18015acf97dSSascha Wildnerfunction will fail if: 181610da160SSascha Wildner.Bl -tag -width Er 182610da160SSascha Wildner.It Bq Er EINVAL 183610da160SSascha WildnerInvalid value for 184efcc44dcSSascha Wildner.Fa inheritsched 185efcc44dcSSascha Wildneror uninitialized 186610da160SSascha Wildner.Fa attr . 187610da160SSascha Wildner.El 188610da160SSascha Wildner.Pp 18915acf97dSSascha WildnerThe 190610da160SSascha Wildner.Fn pthread_attr_setschedparam 19115acf97dSSascha Wildnerfunction will fail if: 192610da160SSascha Wildner.Bl -tag -width Er 193610da160SSascha Wildner.It Bq Er EINVAL 194610da160SSascha WildnerInvalid value for 195610da160SSascha Wildner.Fa attr . 196610da160SSascha Wildner.It Bq Er ENOTSUP 197610da160SSascha WildnerInvalid value for 198610da160SSascha Wildner.Fa param . 199610da160SSascha Wildner.El 200610da160SSascha Wildner.Pp 20115acf97dSSascha WildnerThe 202610da160SSascha Wildner.Fn pthread_attr_setschedpolicy 20315acf97dSSascha Wildnerfunction will fail if: 204610da160SSascha Wildner.Bl -tag -width Er 205610da160SSascha Wildner.It Bq Er EINVAL 206610da160SSascha WildnerInvalid value for 207fdc2e978SSascha Wildner.Fa policy 208fdc2e978SSascha Wildneror uninitialized 209610da160SSascha Wildner.Fa attr . 210610da160SSascha Wildner.El 211610da160SSascha Wildner.Pp 21215acf97dSSascha WildnerThe 213610da160SSascha Wildner.Fn pthread_attr_setscope 21415acf97dSSascha Wildnerfunction will fail if: 215610da160SSascha Wildner.Bl -tag -width Er 216610da160SSascha Wildner.It Bq Er EINVAL 217610da160SSascha WildnerInvalid value for 218610da160SSascha Wildner.Fa attr . 219610da160SSascha Wildner.It Bq Er ENOTSUP 220610da160SSascha WildnerInvalid or unsupported value for 221610da160SSascha Wildner.Fa contentionscope . 222610da160SSascha Wildner.El 223610da160SSascha Wildner.Sh SEE ALSO 224610da160SSascha Wildner.Xr pthread_attr_get_np 3 , 225610da160SSascha Wildner.Xr pthread_create 3 226610da160SSascha Wildner.Sh STANDARDS 22715acf97dSSascha WildnerThe 228610da160SSascha Wildner.Fn pthread_attr_init , 229610da160SSascha Wildner.Fn pthread_attr_destroy , 230610da160SSascha Wildner.Fn pthread_attr_setstacksize , 231610da160SSascha Wildner.Fn pthread_attr_getstacksize , 232610da160SSascha Wildner.Fn pthread_attr_setstackaddr , 233610da160SSascha Wildner.Fn pthread_attr_getstackaddr , 234610da160SSascha Wildner.Fn pthread_attr_setdetachstate , 235610da160SSascha Wildnerand 236610da160SSascha Wildner.Fn pthread_attr_getdetachstate 23715acf97dSSascha Wildnerfunctions conform to 23815acf97dSSascha Wildner.St -p1003.1-96 . 239610da160SSascha Wildner.Pp 24015acf97dSSascha WildnerThe 241610da160SSascha Wildner.Fn pthread_attr_setinheritsched , 242610da160SSascha Wildner.Fn pthread_attr_getinheritsched , 243610da160SSascha Wildner.Fn pthread_attr_setschedparam , 244610da160SSascha Wildner.Fn pthread_attr_getschedparam , 245610da160SSascha Wildner.Fn pthread_attr_setschedpolicy , 246610da160SSascha Wildner.Fn pthread_attr_getschedpolicy , 247610da160SSascha Wildner.Fn pthread_attr_setscope , 248610da160SSascha Wildnerand 249610da160SSascha Wildner.Fn pthread_attr_getscope 25015acf97dSSascha Wildnerfunctions conform to 25115acf97dSSascha Wildner.St -susv2 . 252