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 :

Problème de timeout


Sujet :

C++

  1. #1
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut Problème de timeout
    Bonjour,

    J'ai un problème sur tous les timeout de mon programme. J'ai plusieurs Thread qui devrait etre en WAIT, avec les fonctions :
    -pthread_cond_timedwait
    -sem_timedwait
    -select

    Aucunes de ces fonctions ne se bloquent, mon CPU est à 90%...Je ne comprend pas pourquoi, pourtant je respect les timeout attendu par les fonctions. Voici un petit bout de code sans rentrer dans les détails:

    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
     
    //****************
    struct timespec ts; 
    clock_gettime (CLOCK_REALTIME, &ts); 
    ts.tv_nsec += (timeout * 1000000);      
    ...
    int ret = sem_timedwait(semaName,&ts); 
     
    //****************
    struct timespec ts;
    clock_gettime (CLOCK_REALTIME, &ts); 
    ts.tv_nsec += (timeout * 1000000); 
    ...
    int ret = pthread_cond_timedwait(&m_Condition,&m_Mutex,&ts);
     
    //****************
    struct timeval ts;
    ts.tv_sec = 1;
    ts.tv_usec = 0;
    ...
    res = select(allSock+1, &fdread, &fdwrite, &fdexcep , &tv);
    Les timeout ne sont pas respectés, les fonctions me retournent directement ETIMEDOUT, timeout ateint...

    Es-ce que quelqu'un a déja eu ce problème? J'espère avoir avoir mit toutes les informations nécessaires. clock_gettime renvoi le temps système, y aurais t'il un problème de synchro avec cette fonction et les fonctions pthread_cond_timedwait et sem_timedwait ?

  2. #2
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    J'ai trouvé l'erreur pour le select, j'initilisé ts.tv_sec et ts.tv_usec en dehors de ma boucle sur select. Et il s'avere que le select remet à 0 le timeout.

    Par contre pour sem_timedwait pthread_cond_timedwait je n'ai pas vraiment de solution, j'ai juste remarqué qu'en utilisant tv_sec cela fonctionne... J'aimerais bien utiliser les nano secondes, pour des timer en milliseconde

Discussions similaires

  1. [TOMCAT] Problème de timeout d'une servlet
    Par tuxor dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 18/09/2007, 12h04
  2. Problème de timeout
    Par Mateache dans le forum ASP
    Réponses: 32
    Dernier message: 17/01/2006, 16h23
  3. FTP (TIdFTP) : problème de TimeOut
    Par michelci dans le forum Web & réseau
    Réponses: 7
    Dernier message: 26/10/2005, 17h24
  4. Problème de timeout idTcpClient
    Par Phébus dans le forum Web & réseau
    Réponses: 7
    Dernier message: 22/08/2005, 16h12
  5. Problème de timeout et de déconnexion cliente
    Par Aurelien92 dans le forum CORBA
    Réponses: 18
    Dernier message: 24/08/2004, 14h32

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