xref: /freebsd/share/man/man3/pthread_schedparam.3 (revision 401ab69cff8fa2320a9f8ea4baa114a6da6c952b)
1.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>.
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice(s), this list of conditions and the following disclaimer as
9.\"    the first lines of this file unmodified other than the possible
10.\"    addition of one or more copyright notices.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice(s), this list of conditions and the following disclaimer in
13.\"    the documentation and/or other materials provided with the
14.\"    distribution.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
17.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
20.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27.\"
28.Dd October 17, 2022
29.Dt PTHREAD_SCHEDPARAM 3
30.Os
31.Sh NAME
32.Nm pthread_setschedparam ,
33.Nm pthread_getschedparam
34.Nd thread scheduling parameter manipulation
35.Sh LIBRARY
36.Lb libpthread
37.Sh SYNOPSIS
38.In pthread.h
39.Ft int
40.Fn pthread_setschedparam "pthread_t thread" "int policy" "const struct sched_param *param"
41.Ft int
42.Fn pthread_getschedparam "pthread_t thread" "int *restrict policy" "struct sched_param *restrict param"
43.Sh DESCRIPTION
44The
45.Fn pthread_setschedparam
46and
47.Fn pthread_getschedparam
48functions set and get the scheduling parameters of individual threads.
49The scheduling policy for a thread can either be
50.Dv SCHED_FIFO
51(first in, first out),
52.Dv SCHED_RR
53(round-robin), or
54.Dv SCHED_OTHER
55(timesharing).
56Valid thread priorities (accessed via
57.Va param->sched_priority )
58must be within the range returned by the
59.Xr sched_get_priority_min 2
60and
61.Xr sched_get_priority_max 2
62system calls.
63.Sh RETURN VALUES
64If successful, these functions return 0.
65Otherwise, an error number is returned to indicate the error.
66.Sh ERRORS
67The
68.Fn pthread_setschedparam
69function will fail if:
70.Bl -tag -width Er
71.It Bq Er EINVAL
72Invalid value for
73.Fa policy .
74.It Bq Er ENOTSUP
75Invalid value for scheduling parameters.
76.It Bq Er EPERM
77The calling thread does not have sufficient privilege to perform the operation.
78.It Bq Er ESRCH
79Non-existent thread
80.Fa thread .
81.El
82.Pp
83The
84.Fn pthread_getschedparam
85function will fail if:
86.Bl -tag -width Er
87.It Bq Er ESRCH
88Non-existent thread
89.Fa thread .
90.El
91.Sh SEE ALSO
92.Xr sched_get_priority_max 2 ,
93.Xr sched_get_priority_min 2
94.Sh STANDARDS
95The
96.Fn pthread_setschedparam
97and
98.Fn pthread_getschedparam
99functions conform to
100.St -susv2 .
101