NOM¶
get_robust_list, set_robust_list - Lire et écrire une liste de futex
robustes
SYNOPSIS¶
#include <linux/futex.h>
#include <syscall.h>
long get_robust_list(int pid, struct robust_list_head **head_ptr,
size_t *len_ptr);
long set_robust_list(struct robust_list_head *head, size_t len);
Remarque : il n'existe pas de fonctions glibc autour de ces appels
système ; consultez
NOTES.
DESCRIPTION¶
L'implémentation de futex robuste doit maintenir les listes par thread de
futex robustes qui sont déverrouillés quand le thread se
termine. Ces listes sont gérées en espace utilisateur ;
le noyau n'est notifié que de l'emplacement de la tête de la
liste.
L'appel système
get_robust_list() renvoie la tête de la
liste de futex robustes du thread dont l'identifiant de thread est
indiqué par
pid. Si
pid est 0, la tête de liste
pour le thread appelant est renvoyée. La tête de liste est
conservée à l'emplacement pointé par
head_ptr. La
taille de l'objet pointé par
**head_ptr est conservée
dans
len_ptr.
L'appel système
set_robust_list() demande au noyau d'enregistrer
la tête de la liste de futex robustes appartenant au thread appelant.
L'argument
head est la tête de liste à enregistrer.
L'argument
len devrait être
sizeof(*head).
VALEUR RENVOYÉE¶
Les appels systèmes
set_robust_list() et
get_robust_list()
renvoient zéro quand l'opération a réussi, et un code
d'erreur sinon.
ERREURS¶
L'appel système
set_robust_list() peut échouer avec
l'erreur suivante.
- EINVAL
- len ne correspond pas à la taille de structure struct
robust_list_head attendue par le noyau.
L'appel système
get_robust_list() peut échouer avec les
erreurs suivantes.
- EPERM
- Le processus appelant n'a pas le droit de voir la liste de futex robustes
du thread avec l'identifiant de thread pid, et n'a pas la
capacité CAP_SYS_PTRACE.
- ESRCH
- Aucun thread avec pour identifiant de thread pid n'a pu être
trouvé.
- EFAULT
- La tête de la liste de futex robustes ne peut pas être
conservée à l'emplacement head.
VERSIONS¶
Ces appels système ont été ajoutés à
Linux 2.6.17. Aucune bibliothèque n'existe pour les
gérer, utilisez
syscall(2).
NOTES¶
Ces appels système ne sont pas nécessaires aux applications
normales. La glibc ne les gère pas. Au cas improbable où vous
voudriez les appeler directement, utilisez
syscall(2).
Un thread ne peut avoir qu'une seule liste de futex robustes. Par
conséquent, les applications qui désirent utiliser cette
fonctionnalité devraient utiliser les mutex robustes fournis par la
glibc.
VOIR AUSSI¶
futex(2)
Documentation/robust-futexes.txt et
Documentation/robust-futex-ABI.txt dans l'arborescence des sources du
noyau Linux
COLOPHON¶
Cette page fait partie de la publication 3.65 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce
document en utilisant la commande «
man -L C
<section>
<page_de_man> ».