IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

pthread_join ne marche pas


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 3
    Par défaut pthread_join ne marche pas
    Bonjour,
    voila, j'ai deux threads (lancée par le corba).
    Dans le premier thread, je stocke son identifiant grace à la méthode pthread_self dans une variable globale.
    Dans le deuxième thread, je lance un pthread_join sur le thread 1.
    le pthread_join me retourne comme valeur de retour 22 (EINVAL).
    Alors, y'a t-il un moyen pour rendre le thread 1 joignable (ce thread est crée par le corba)?
    Sinon, est ce que l'appel à pthread_cancel au lieu de pthread_join(pour un autre cas d'utilisation) marchera sur un thread détaché?
    Merci d'avance pour vos réponses

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Il est tout à fait possible que le deuxième thread n'aie pas le temps le mettre son id dans la variable globale avant que le premier ne fasse de join en utilisant cet id. Relis un peu mieux la doc de pthread_create, je serais bien incapable de te citer la procédure de mémoire mais il existe forcément un moyen de récupérer l'id du thread créé via une valeur de retour.
    De toutes façons quand on commence à faire des programmes multi-thread les variables globales il faut oublier (sauf pour les données vraiment partagées dans tout le programme, et encore il faut blinder tout à coup de mutex). Alors autant prendre le plis dés le début.

    En dehors de ça, ton explication n'est pas fort claire. Tu qualifies quoi par "le" corba? Une api pour faire du Corba? Oui mais laquelle? Et le cas échéant pourquoi vouloir jouer avec des threads que cette api crée?

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Si les threads sont lancés par CORBA et non explicitement par pthread, je ne suis pas certain qu'ils puissent être utilisés ainsi...

    Enfin, si tu es sous nux, ça doit être possible (sous Windows, ce serait hors de question), mais si les threads ont subi un pthread_detach(), je crois qu'on ne peut plus faire de pthread_join() dessus...

    D'une manière générale, je déconseille toute manip de ce genre sur des threads que tu ne contrôles pas totalement.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo