pthread_attr_setinheritsched, pthread_attr_getinheritsched - Définir ou
obtenir l'attribut d'héritage d'ordonnancement d'un objet d'attributs
de thread
Bibliothèque de threads POSIX (
libpthread,
-lpthread)
#include <pthread.h>
int pthread_attr_setinheritsched(pthread_attr_t *attr,
int inheritsched);
int pthread_attr_getinheritsched(const pthread_attr_t *restrict attr,
int *restrict inheritsched);
La fonction
pthread_attr_setinheritsched() définit l'attribut
d'héritage d'ordonnancement de l'objet d'attributs de thread auquel
attr fait référence à la valeur indiquée
par
inheritsched. Cet attribut détermine si un thread
créé en utilisant l'objet d'attributs de thread
attr
héritera les paramètres d'ordonnancement du thread appelant, ou
prendra la valeur fournie par
attr.
Les attributs d'ordonnancement suivants dépendent de l'attribut
d'ordonnancement hérité : la politique d'ordonnancement (
pthread_attr_setschedpolicy(3)), la priorité d'ordonnancement (
pthread_attr_setschedparam(3)), et l'arbitrage de compétitions (
pthread_attr_setscope(3)).
Les valeurs suivantes peuvent être spécifiées dans
inheritsched :
- PTHREAD_INHERIT_SCHED
- Les threads qui sont créés en utilisant
attr héritent des attributs d'ordonnancement du thread
appelant. Les attributs d'ordonnancement dans attr sont
ignorés.
- PTHREAD_EXPLICIT_SCHED
- Les threads qui sont créés en utilisant
attr prennent comme attributs d'ordonnancement les valeurs
spécifiées dans l'objet d'attributs de thread.
La valeur par défaut de l'attribut d'ordonnancement pour un nouvel objet
d'attributs de thread est
PTHREAD_INHERIT_SCHED.
La fonction
pthread_attr_getinheritsched() renvoie, dans le tampon
pointé par
inheritsched, l'attribut contenant l'ordonnancement
de l'objet d'attributs de thread auquel
attr fait
référence.
En cas de succès, ces fonctions renvoient
0 ; en cas
d'erreur, elles renvoient un code d'erreur non nul.
pthread_attr_setinheritsched() peut échouer avec les erreurs
suivantes :
- EINVAL
- Valeur invalide pour inheritsched.
POSIX.1 also documents an optional
ENOTSUP error ("attempt was made
to set the attribute to an unsupported value") for
pthread_attr_setinheritsched().
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
pthread_attr_setinheritsched(),
pthread_attr_getinheritsched() |
Sécurité des threads |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Dans glibc 2.8, si un objet d'attributs de thread est initialisé avec
pthread_attr_init(3), alors la politique d'ordonnancement de l'objet
des attributs est mis à
SCHED_OTHER et la priorité
d'ordonnancement à 0. Cependant, si l'attribut d'héritage
d'ordonnancement est mis à
PTHREAD_EXPLICIT_SCHED,un thread
créé avec l'objet d'attributs de thread va hériter de
manière erronée des attributs d'ordonnancement du thread
appelant. Pour éviter cette erreur, il faut positionner soit la
politique d'ordonnancement, soit l'attribut de priorité
d'ordonnancement, de manière explicite dans l'objet d'attributs de
thread avant d'appeler
pthread_create(3).
Consultez
pthread_setschedparam(3).
pthread_attr_init(3),
pthread_attr_setschedparam(3),
pthread_attr_setschedpolicy(3),
pthread_attr_setscope(3),
pthread_create(3),
pthread_setschedparam(3),
pthread_setschedprio(3),
pthreads(7),
sched(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Frédéric Hantrais <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]