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

Langage Perl Discussion :

Problème thread et fonction récursive


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut Problème thread et fonction récursive
    Salut a tous j'ai un problème de threads. voila j'ai un programme dont je veut lancer 2 fonctions dans des threads la fonction principale faisant partie du thread principale biensur. Mon probème c'est que mes trois fonctions sont récursive et que donc mes threads sont bloqué .

    Pour lancer mes fonctions je fait comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $th1 = threads->create({'context' => 'void'}, sub { new_server(); } );
    my $th2 = threads->create({'context' => 'void'}, sub { job_queue(); } );
     
    main(); # fonction principale

    Mon premier thread ce lance bien mais les autres non car new_server est un fonction récursive tout comme les autres.

    Savez vous comment régler ce problème ??

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    Personne n'aurait une petite idée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    Voila une des fonctions qui me pose problème j'ai coupé dans le code car il est vraiment très long

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    sub new_client
      {
       print "\nClient lancé\n";
         my $host = shift;
         my ($sock ,$data ,$temp);
     
            while (1)
            { 
              while ( !$sock )
              {
                $sock = new_connect($host);
              }
              while ( $data = receive_data($sock) )
              {
                     if ( ref($data) eq "HASH" and scalar keys %$data > 0)
                     {
                       [...]
     
                     }
                       else
                     {
                       print "\nInvalid hash\n";
                     }
             }
          }
      }

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    new_client() ne m'a pas l'air vraiment récursive.. Mais le problème n'est pas là, mais plutôt au niveau du receive_data() qui bloque sûrement, il faudrait faiire ça de façon non-bloquante, avec un select peut-être.

    --
    Jedaï

Discussions similaires

  1. problème sur une Fonction récursive
    Par bernie74 dans le forum Développement
    Réponses: 4
    Dernier message: 21/11/2011, 12h45
  2. Réponses: 7
    Dernier message: 15/07/2011, 15h22
  3. Réponses: 7
    Dernier message: 12/06/2011, 07h14
  4. [Problème]Dichotomie et fonction récursive
    Par Hyperyon dans le forum Débuter
    Réponses: 16
    Dernier message: 27/09/2008, 18h17
  5. Problème de fonction récursive avec un TcxDBTreeList
    Par isachat666 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 05/12/2005, 13h12

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