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 :

comment armer un timeout sur une fonction bloquante


Sujet :

C

  1. #1
    Membre averti Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Points : 414
    Points
    414
    Par défaut comment armer un timeout sur une fonction bloquante
    Bonjour,

    Mon problème consiste a implementer un TimeOut pour une fonction. La fonction est bloquante ......

    Est ce qu'il y a un moyen d'implementer cette notion, sans, bien sure, un autre thread ?

    Merci
    "La créativité est faites d'attention et de respect pour les petits faits de la vie."

  2. #2
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut
    Une réponse rapide.

    Sans passer par un controle exterieur, cela devient un peu plus délicat.
    Après, à l'interieur de la fonction, si il existe une boucle, il est possible à chaque iteration de connaitre le temps, et ainsi, de choisir de continuer ou pas la boucle, et de sortir de la fonction avec un code d'erreur approprié.

    Pour une réponse plus précise, il faudrait un peu plus de détail sur cette fonction bloquante

  3. #3
    Membre averti Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Points : 414
    Points
    414
    Par défaut
    Bon,
    j'ai pas le code de la Fonction bloquante, et je sais po comment le blockage est implementee ...., mais il faut que arme un TimeOut pour mes besoins....

    Alors ?

    Merci
    "La créativité est faites d'attention et de respect pour les petits faits de la vie."

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    précise un peu stp..

    un read, un write, un select, une fonction d'une biblotheque , ?????????
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre averti Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Points : 414
    Points
    414
    Par défaut
    je jure que je sais pas comment elle est implementé cette fonction, mais tous ce que je doit savoir c'est qu'elle utilisée pour la lecture des message entre les processus et elle BLOQUANTE.

    l'utilisation de alarm(), poll(), select() n'est pas l'idée que je cherche ? je veu une solution sans nouveau Thread ?

    vraiment MERCI
    "La créativité est faites d'attention et de respect pour les petits faits de la vie."

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si tu es sous POSIX, signal() + alarm() devraient t'aider, si POSIX accepte qu'on fasse un longjmp() dans un traitement de signal OU si la fonction bloquante gère assez bien le fait que sa fonction d'attente interne soit interrompue par un signal.
    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.

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par cmoibal Voir le message
    Bonjour,

    Mon problème consiste a implementer un TimeOut pour une fonction. La fonction est bloquante ......

    Est ce qu'il y a un moyen d'implementer cette notion, sans, bien sure, un autre thread ?
    Non. Il faut 2 threads. Un pour la fonction bloquante, un pour le timer (sleep(=, Sleep())

    Je ne vois pas en quoi c'est génant. C'est le B.A. BA de la programmation synchrone.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Réponses: 13
    Dernier message: 17/09/2014, 18h09
  2. timeout sur une fonction
    Par mosto dans le forum C#
    Réponses: 5
    Dernier message: 14/07/2010, 04h07
  3. Réponses: 2
    Dernier message: 04/06/2009, 17h58
  4. Réponses: 3
    Dernier message: 20/10/2006, 19h50
  5. Comment définir un timeout sur une socket PHP ?
    Par N3odyme dans le forum Langage
    Réponses: 7
    Dernier message: 07/05/2006, 23h04

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