xref: /dflybsd-src/lib/libpthread/pthread_attr.3 (revision bb5b9becd1923c502e9857d0ef340410aaeee99a)
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