pthread_mutexattr_getprioceiling ou pthread_mutexattr_setprioceiling Sous-routine

Objectif

Extrait et définit l'attribut prioceiling de l'objet d'attributs mutex.

Syntaxe

#include <pthread.h>

int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *
       restrict attr, int *restrict prioceiling);
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr,
       int prioceiling);

Descriptif

Les sous-routines pthread_mutexattr_getprioceiling et pthread_mutexattr_setprioceiling , respectivement, extraient et définissent l'attribut de plafond de priorité d'un objet d'attributs de mutex désigné par le paramètre attr , précédemment créé par la sous-routine pthread_mutexattr_init .

L'attribut prioceiling contient le plafond de priorité des exclusions mutuelles initialisées. Les valeurs du paramètre prioceiling se trouvent dans la plage maximale de priorités définie par SCHED_FIFO.

Le paramètre prioceiling définit le plafond de priorité des mutex initialisés, qui correspond au niveau de priorité minimal auquel la section critique protégée par le mutex est exécutée. Afin d'éviter une inversion de priorité, le plafond de priorité du mutex est fixé à une priorité supérieure ou égale à la priorité la plus élevée de tous les fils qui peuvent verrouiller ce mutex. Les valeurs du paramètre prioceiling se trouvent dans la plage maximale de priorités définie dans la règle de planification SCHED_FIFO.

Valeurs renvoyées

Une fois l'opération terminée, les sous-routines pthread_mutexattr_getprioceiling et pthread_mutexattr_setprioceiling renvoient zéro ; sinon, un numéro d'erreur est renvoyé pour indiquer l'erreur.

Codes d'erreur

Les sous-routines pthread_mutexattr_getprioceiling et pthread_mutexattr_setprioceiling peuvent échouer si:
Article Descriptif
EINVAL La valeur spécifiée par le paramètre attr ou prioceiling n'est pas valide.
ENOSYS Cette fonction n'est pas prise en charge (brouillon 7).
ENOTSUP Cette fonction n'est pas prise en charge avec checkpoint/restart.
EPERM L'appelant n'a pas le privilège d'effectuer l'opération dans un environnement strictement conforme aux normes dans lequel la variable d'environnement XPG_SUS_ENV=ON.