GET_ROBUST_LIST(2)

NOM
get_robust_list, set_robust_list - Lire et écrire une liste de futex robustes

SYNOPSIS
#include <linux/futex.h>
#include <sys/types.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.70 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 à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».