diff options
Diffstat (limited to 'man-pages-posix-2003/man3p/pthread_mutexattr_getprotocol.3p')
-rw-r--r-- | man-pages-posix-2003/man3p/pthread_mutexattr_getprotocol.3p | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man3p/pthread_mutexattr_getprotocol.3p b/man-pages-posix-2003/man3p/pthread_mutexattr_getprotocol.3p new file mode 100644 index 0000000..8ed5bfa --- /dev/null +++ b/man-pages-posix-2003/man3p/pthread_mutexattr_getprotocol.3p @@ -0,0 +1,152 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "PTHREAD_MUTEXATTR_GETPROTOCOL" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" pthread_mutexattr_getprotocol +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.SH NAME +pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol \- get +and set the protocol attribute of the mutex +attributes object (\fBREALTIME THREADS\fP) +.SH SYNOPSIS +.LP +\fB#include <pthread.h> +.br +.sp +\fBint pthread_mutexattr_getprotocol(const pthread_mutexattr_t * +.br +\ \ \ \ \ \ restrict\fP \fIattr\fP\fB, int *restrict\fP \fIprotocol\fP\fB); +.br +int pthread_mutexattr_setprotocol(pthread_mutexattr_t *\fP\fIattr\fP\fB, +.br +\ \ \ \ \ \ int\fP \fIprotocol\fP\fB); \fP +.sp +\fP +\fB +.br +\fP +.SH DESCRIPTION +.LP +The \fIpthread_mutexattr_getprotocol\fP() and \fIpthread_mutexattr_setprotocol\fP() +functions, respectively, shall get and set +the protocol attribute of a mutex attributes object pointed to by +\fIattr\fP which was previously created by the function \fIpthread_mutexattr_init\fP(). +.LP +The \fIprotocol\fP attribute defines the protocol to be followed in +utilizing mutexes. The value of \fIprotocol\fP may be one +of: +.LP +.sp +PTHREAD_PRIO_NONE +.br +.sp +PTHREAD_PRIO_INHERIT +.br +.sp +.sp +PTHREAD_PRIO_PROTECT +.br +.sp +.LP +which are defined in the \fI<pthread.h>\fP header. +.LP +When a thread owns a mutex with the PTHREAD_PRIO_NONE \fIprotocol\fP +attribute, its priority and scheduling shall not be +affected by its mutex ownership. +.LP +When a thread is blocking higher priority threads because of owning +one or more mutexes with the PTHREAD_PRIO_INHERIT +\fIprotocol\fP attribute, it shall execute at the higher of its priority +or the priority of the highest priority thread waiting on +any of the mutexes owned by this thread and initialized with this +protocol. +.LP +When a thread owns one or more mutexes initialized with the PTHREAD_PRIO_PROTECT +protocol, it shall execute at the higher of its +priority or the highest of the priority ceilings of all the mutexes +owned by this thread and initialized with this attribute, +regardless of whether other threads are blocked on any of these mutexes +or not. +.LP +While a thread is holding a mutex which has been initialized with +the PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT protocol +attributes, it shall not be subject to being moved to the tail of +the scheduling queue at its priority in the event that its +original priority is changed, such as by a call to \fIsched_setparam\fP(). +Likewise, when a thread unlocks a mutex that has been initialized +with the PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT protocol +attributes, it shall not be subject to being moved to the tail of +the scheduling queue at its priority in the event that its +original priority is changed. +.LP +If a thread simultaneously owns several mutexes initialized with different +protocols, it shall execute at the highest of the +priorities that it would have obtained by each of these protocols. +.LP +When a thread makes a call to \fIpthread_mutex_lock\fP(), the mutex +was +initialized with the protocol attribute having the value PTHREAD_PRIO_INHERIT, +when the calling thread is blocked because the mutex +is owned by another thread, that owner thread shall inherit the priority +level of the calling thread as long as it continues to own +the mutex. The implementation shall update its execution priority +to the maximum of its assigned priority and all its inherited +priorities. Furthermore, if this owner thread itself becomes blocked +on another mutex, the same priority inheritance effect shall +be propagated to this other owner thread, in a recursive manner. +.SH RETURN VALUE +.LP +Upon successful completion, the \fIpthread_mutexattr_getprotocol\fP() +and \fIpthread_mutexattr_setprotocol\fP() functions +shall return zero; otherwise, an error number shall be returned to +indicate the error. +.SH ERRORS +.LP +The \fIpthread_mutexattr_setprotocol\fP() function shall fail if: +.TP 7 +.B ENOTSUP +The value specified by \fIprotocol\fP is an unsupported value. +.sp +.LP +The \fIpthread_mutexattr_getprotocol\fP() and \fIpthread_mutexattr_setprotocol\fP() +functions may fail if: +.TP 7 +.B EINVAL +The value specified by \fIattr\fP or \fIprotocol\fP is invalid. +.TP 7 +.B EPERM +The caller does not have the privilege to perform the operation. +.sp +.LP +These functions 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 +None. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIpthread_cond_destroy\fP(), \fIpthread_create\fP(), \fIpthread_mutex_destroy\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 . |