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.65 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> ».