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 quitte. 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.44 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> ».