VMS Help
POSIX Threads, PTHREAD routines, pthread_setschedparam
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
Changes a thread's scheduling policy and scheduling parameters.
#include <pthread.h>
int
pthread_setschedparam (
pthread_t thread,
int policy,
const struct sched_param *param);
thread
Thread whose scheduling policy and parameters are to be changed.
policy
New scheduling policy value for the thread specified in thread.
The following are valid values:
SCHED_BG_NP
SCHED_FG_NP
SCHED_FIFO
SCHED_OTHER
SCHED_RR
param
New values of the scheduling parameters associated with the
scheduling policy for the thread specified in thread. Valid
values for the sched_priority field of a sched_param structure
depend on the chosen scheduling policy. Use the POSIX routines
sched_get_priority_min() or sched_get_priority_max() to
determine the low and high limits of each policy.
Additionally, the Threads Librray provides nonportable priority
range constants, as follows:
Low High
PRI_FIFO_MIN PRI_FIFO_MAX
PRI_RR_MIN PRI_RR_MAX
PRI_OTHER_MIN PRI_OTHER_MAX
PRI_FG_MIN_NP PRI_FG_MAX_NP
PRI_BG_MIN_NP PRI_BG_MAX_NP
The default priority varies by platform. On Tru64 UNIX, the
default is 19 (that is, the POSIX priority of a normal timeshare
process). On other platforms the default priority is the midpoint
between PRI_FG_MIN_NP and PRI_FG_MAX_NP.
This routine changes both the current scheduling policy and
associated scheduling parameters of the thread specified by
thread to the policy and associated parameters provided in policy
and param, respectively.
All currently implemented scheduling policies have one scheduling
parameter called sched_priority. For the policy you choose, you
must specify an appropriate value in the sched_priority field of
the sched_param structure.
Changing the scheduling policy or priority, or both, of a thread
can cause it either to start executing or to be preempted by
another thread. A thread changes its own scheduling policy and
priority by using the handle returned by the pthread_self()
routine.
This routine differs from pthread_attr_setschedpolicy() and
pthread_attr_setschedparam(), in that those routines set the
scheduling policy and parameter attributes that are used to
establish the scheduling priority and scheduling policy of a
new thread when it is created. However, this routine changes the
scheduling policy and parameters of an existing thread.
If an error condition occurs, no scheduling policy or parameters
are changed for the target thread, and this routine returns
an integer value indicating the type of error. Possible return
values are as follows:
Return Description
0 Successful completion.
[EINVAL] The value specified by policy or param is invalid.
[ENOTSUP] An attempt was made to set the scheduling policy or a
parameter to an unsupported value.
[EPERM] The caller does not have the appropriate privileges
to set the scheduling policy or parameters of the
specified thread.
[ESRCH] The value specified by thread does not refer to an
existing thread.
pthread_attr_setschedparam()
pthread_attr_setschedpolicy()
pthread_create()
pthread_self()
sched_yield()
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.