Man page - set_tid_address(2)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

set_tid_address

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
VOIR AUSSI
TRADUCTION

NOM

set_tid_address - Positionner un pointeur vers un identifiant de thread (TID)

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <sys/syscall.h> /* Définition des constantes SYS_* */
#include <unistd.h>

pid_t syscall(SYS_set_tid_address, int * tidptr );

Note : la glibc ne founit pas d’enveloppe pour set_tid_address (), nĂ©cessitant l’utilisation de syscall (2).

DESCRIPTION

Pour chaque thread, Le noyau maintient deux attributs (adresses) nommés set_child_tid et clear_child_tid . Ces deux attributs contiennent la valeur NULL par défaut.
set_child_tid

Si un thread est dĂ©marrĂ© en utilisant clone (2) avec l’attribut CLONE_CHILD_SETTID , set_child_tid est dĂ©finie Ă  la valeur passĂ©e Ă  l’argument ctid de cet appel systĂšme.

Lorsque set_child_tid est remplie, la toute premiĂšre chose que le nouveau thread fait est d’écrire son ID de thread Ă  cette adresse.

clear_child_tid

Si un thread est dĂ©marrĂ© en utilisant clone (2) avec l’attribut CLONE_CHILD_CLEARTID , clear_child_tid est dĂ©finie Ă  la valeur passĂ©e Ă  l’argument ctid de cet appel systĂšme.

L’appel systùme set_tid_address () remplit la valeur clear_child_tid pour le thread appelant à tidptr .

Lorsqu’un thread dont clear_child_tid n’est pas NULL se termine, alors, si le thread partage de la mĂ©moire avec d’autres threads, 0 est Ă©crit Ă  l’adresse indiquĂ©e dans clear_child_tid et le noyau rĂ©alise l’opĂ©ration suivante :

futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);

L’effet de cette opĂ©ration est de rĂ©veiller un simple thread qui rĂ©alise une attente futex Ă  l’emplacement de la mĂ©moire. Les erreurs de l’opĂ©ration de rĂ©veil du futex sont ignorĂ©es.

VALEUR RENVOYÉE

set_tid_address () renvoie toujours l’identifiant du thread appelant.

ERREURS

set_tid_address () réussit toujours.

STANDARDS

Linux.

HISTORIQUE

Linux 2.5.48.

Les détails fournis ici sont valables depuis Linux 2.5.49.

VOIR AUSSI

clone (2), futex (2), gettid (2)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

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 à debian-l10n-french@lists.debian.org .