NOM¶
pthread_detach - Détacher un thread
SYNOPSIS¶
#include <pthread.h>
int pthread_detach(pthread_t thread);
Compilez et effectuez l'édition des liens avec l'option
-pthread.
DESCRIPTION¶
La fonction
pthread_detach() marque l'identifiant de thread
identifié par
thread comme détaché. Quand un thread
détaché se termine, ses ressources sont automatiquement rendues au
système sans avoir besoin d'un autre thread pour joindre le thread
terminé.
Essayer de détacher un thread qui est déjà détaché
résulte en un comportement indéfini.
VALEUR RENVOYÉE¶
En cas de réussite,
pthread_detach() renvoie 0 ; en cas
d'erreur, elle renvoie un numéro d'erreur.
ERREURS¶
- EINVAL
- thread n'est pas un thread joignable.
- ESRCH
- Aucun thread avec pour identifiant thread n'a pu
être trouvé.
POSIX.1-2001.
NOTES¶
Une fois qu'un thread est détaché, il ne peut plus être joint
avec
pthread_join(3) ou être fait de nouveau joignable.
Un nouveau thread peut être créé dans un état
détaché en utilisant
pthread_attr_setdetachstate(3) pour
positionner l'attribut détaché de l'argument
attr de
pthread_create(3).
L'attribut d'état de détachement détermine principalement le
comportement du système quand le thread se termine. Il n'empêche pas
le thread de terminer si le processus se termine avec
exit(3) (ou, de
manière équivalente, si le thread principal sort de sa routine
d'appel).
Soit
pthread_join(3), soit
pthread_detach() devrait être
appelé pour chaque thread créé par une application, afin que
les ressources système du thread puissent être libérées.
Notez cependant que les ressources de tous les threads sont libérées
quand le processus se termine.
EXEMPLE¶
L'expression suivante détache le thread appelant :
pthread_detach(pthread_self());
VOIR AUSSI¶
pthread_attr_setdetachstate(3),
pthread_cancel(3),
pthread_create(3),
pthread_exit(3),
pthread_join(3),
pthreads(7)
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/>.
Denis Barbier (2010).
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> ».