summaryrefslogtreecommitdiffstats
path: root/man3p/pthread_setschedprio.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/pthread_setschedprio.3p')
-rw-r--r--man3p/pthread_setschedprio.3p102
1 files changed, 102 insertions, 0 deletions
diff --git a/man3p/pthread_setschedprio.3p b/man3p/pthread_setschedprio.3p
new file mode 100644
index 000000000..efd445d09
--- /dev/null
+++ b/man3p/pthread_setschedprio.3p
@@ -0,0 +1,102 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "PTHREAD_SETSCHEDPRIO" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" pthread_setschedprio
+.SH NAME
+pthread_setschedprio \- dynamic thread scheduling parameters access
+(\fBREALTIME THREADS\fP)
+.SH SYNOPSIS
+.LP
+\fB#include <pthread.h>
+.br
+.sp
+int pthread_setschedprio(pthread_t\fP \fIthread\fP\fB, int\fP \fIprio\fP\fB);
+\fP
+\fB
+.br
+\fP
+.SH DESCRIPTION
+.LP
+The \fIpthread_setschedprio\fP() function shall set the scheduling
+priority for the thread whose thread ID is given by
+\fIthread\fP to the value given by \fIprio\fP. See \fIScheduling Policies\fP
+for a description on how this function call affects the ordering of
+the thread in the thread list for its new priority.
+.LP
+If the \fIpthread_setschedprio\fP() function fails, the scheduling
+priority of the target thread shall not be changed.
+.SH RETURN VALUE
+.LP
+If successful, the \fIpthread_setschedprio\fP() function shall return
+zero; otherwise, an error number shall be returned to
+indicate the error.
+.SH ERRORS
+.LP
+The \fIpthread_setschedprio\fP() function may fail if:
+.TP 7
+.B EINVAL
+The value of \fIprio\fP is invalid for the scheduling policy of the
+specified thread.
+.TP 7
+.B ENOTSUP
+An attempt was made to set the priority to an unsupported value.
+.TP 7
+.B EPERM
+The caller does not have the appropriate permission to set the scheduling
+policy of the specified thread.
+.TP 7
+.B EPERM
+The implementation does not allow the application to modify the priority
+to the value specified.
+.TP 7
+.B ESRCH
+The value specified by \fIthread\fP does not refer to an existing
+thread.
+.sp
+.LP
+The \fIpthread_setschedprio\fP() function shall not return an error
+code of [EINTR].
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.LP
+None.
+.SH APPLICATION USAGE
+.LP
+None.
+.SH RATIONALE
+.LP
+The \fIpthread_setschedprio\fP() function provides a way for an application
+to temporarily raise its priority and then lower it
+again, without having the undesired side effect of yielding to other
+threads of the same priority. This is necessary if the
+application is to implement its own strategies for bounding priority
+inversion, such as priority inheritance or priority ceilings.
+This capability is especially important if the implementation does
+not support the Thread Priority Protection or Thread Priority
+Inheritance options, but even if those options are supported it is
+needed if the application is to bound priority inheritance for
+other resources, such as semaphores.
+.LP
+The standard developers considered that while it might be preferable
+conceptually to solve this problem by modifying the
+specification of \fIpthread_setschedparam\fP(), it was too late to
+make such
+a change, as there may be implementations that would need to be changed.
+Therefore, this new function was introduced.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fIScheduling Policies\fP , \fIpthread_getschedparam\fP() , the Base
+Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<pthread.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .