set_tid_address(2) System Calls Manual set_tid_address(2) NOM set_tid_address - Positionner un pointeur vers un identifiant de thread (TID) BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include /* Definition des constantes SYS_* */ #include pid_t syscall(SYS_set_tid_address, int *tidptr); Note : la glibc ne founit pas d'enveloppe pour set_tid_address(), necessitant l'utilisation de syscall(2). DESCRIPTION Pour chaque thread, Le noyau maintient deux attributs (adresses) nommes set_child_tid et clear_child_tid. Ces deux attributs contiennent la valeur NULL par defaut. set_child_tid Si un thread est demarre en utilisant clone(2) avec l'attribut CLONE_CHILD_SETTID, set_child_tid est definie a la valeur passee a l'argument ctid de cet appel systeme. Lorsque set_child_tid est remplie, la toute premiere chose que le nouveau thread fait est d'ecrire son ID de thread a cette adresse. clear_child_tid Si un thread est demarre en utilisant clone(2) avec l'attribut CLONE_CHILD_CLEARTID, clear_child_tid est definie a la valeur passee a l'argument ctid de cet appel systeme. L'appel systeme set_tid_address() remplit la valeur clear_child_tid pour le thread appelant a tidptr. Lorsqu'un thread dont clear_child_tid n'est pas NULL se termine, alors, si le thread partage de la memoire avec d'autres threads, 0 est ecrit a l'adresse indiquee dans clear_child_tid et le noyau realise l'operation suivante : futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0); L'effet de cette operation est de reveiller un simple thread qui realise une attente futex a l'emplacement de la memoire. Les erreurs de l'operation de reveil du futex sont ignorees. VALEUR RENVOYEE set_tid_address() renvoie toujours l'identifiant du thread appelant. ERREURS set_tid_address() reussit toujours. STANDARDS Linux. HISTORIQUE Linux 2.5.48. Les details fournis ici sont valables depuis Linux 2.5.49. VOIR AUSSI clone(2), futex(2), gettid(2) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 set_tid_address(2)