zion -  pthread_join


Nom

pthread_join - attend la fin d'un autre thread

Résumé

#include <pthread.h> int pthread_join(pthread_t th , void ** thread_return );

Description

pthread_join suspend l'exécution du thread appelant jusqu'à ce que le thread identifié par th achève son exécution, soit en appelant pthread_exit (3) soit après avoir été annulé. Si thread_return ne vaut pas NULL , la valeur renvoyée par th y sera enregistrée. Cette valeur sera soit l'argument passé à pthread_exit (3), soit PTHREAD_CANCELED si le thread th a été annulé. Le thread rejoint th doit être dans l'état joignable : il ne doit pas avoir été détaché par pthread_detach (3) ou par l'attribut PTHREAD_CREATE_DETACHED lors de sa création par pthread_create (3). Quand l'exécution d'un thread joignable s'achève, ses ressources mémoire (descripteur de thread et pile) ne sont pas désallouées jusqu'à ce qu'un autre thread le joigne en utilisant pthread_join. Aussi, pthread_join doit être appelée une fois pour chaque thread joignable pour éviter des "fuites" de mémoire. Au plus un seul thread peut attendre la mort d'un thread donné. Appeler pthread_join sur un thread th dont un autre thread attend déjà la fin renvoie une erreur.

Annulation

pthread_join est un point d'annulation. Si un thread est annulé alors qu'il est suspendu dans pthread_join , l'exécution du thread reprend immédiatement et l'annulation est réalisée sans attendre la fin du thread th. Si l'annulation intervient durant pthread_join , le thread th demeure non joint.

Valeur renvoyée

En cas de succès, le code renvoyé par th est enregistré à l'emplacement pointé par thread_return , et 0 est renvoyé. En cas d'erreur, un code d'erreur non nul est renvoyé.

Erreurs

ESRCH
    Aucun thread correspondant à th n' a pu être trouvé.

EINVAL
    Le thread th a été détaché.

EINVAL
    Un autre thread attend déjà la mort de th .

EDEADLK
    L'argument th représente le thread appelant.


Auteur

Xavier Leroy <Xavier.Leroy@inria.fr>

Voir aussi

pthread_exit (3), pthread_detach (3), pthread_create (3), pthread_attr_setdetachstate (3), pthread_cleanup_push (3), pthread_key_create (3).

Traduction

Thierry Vignaud < tvignaud@mandrakesoft.com >, 2000

Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?