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

Linux Discussion :

pipes et threads


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Par défaut pipes et threads
    salut,
    je souhaite ecrire un thread qui va poller un pipe, je voulais savoir, comme la lecture d'un pipe peut etre blocante, si cela risque de provoquer le bloquage de mon programme qui passerai tout son temps dans le thread en question ? doit je passser imperatibvement utiliser fcntl et O_NONBLOCK ?

  2. #2
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Salut,
    Ton thread va bloquer en attente du read, mais les autres thread vont continuer a tourner sans probleme (sauf si eux dependent de ton thread bloque).
    Et aussi pour eviter le poll tu peux utiliser select()

  3. #3
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par tonton fred Voir le message
    Salut,
    Ton thread va bloquer en attente du read, mais les autres thread vont continuer a tourner sans probleme (sauf si eux dependent de ton thread bloque).
    Et aussi pour eviter le poll tu peux utiliser select()
    Moi j'aurai déconseillé select() au profil de poll(), à la rigueur pselect(), si possible ppoll(), mieux encore epoll_wait() ou alors le top epoll_pwait().

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Moi j'aurai déconseillé select() au profil de poll(),
    Pourrais-tu expliquer pourquoi? A cause des events?

    Citation Envoyé par nicolas.sitbon Voir le message
    à la rigueur pselect(), si possible ppoll(), mieux encore epoll_wait() ou alors le top epoll_pwait().
    Je connaissais pas pselect(), un grand merci pour l'info Par contre les 3 autres ne sont pas standards si?

  5. #5
    Membre expérimenté
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Par défaut
    merci a vous 2 pour vos conceils

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par tonton fred Voir le message
    Pourrais-tu expliquer pourquoi? A cause des events?
    Simplement à cause de la limitation sur le nombre de descripteur que l'on peut surveiller.

    Citation Envoyé par tonton fred Voir le message
    Je connaissais pas pselect(), un grand merci pour l'info Par contre les 3 autres ne sont pas standards si?
    je vais essayé de résumé au mieux les différences, en les classant du moins bon au meilleur:


    1. select() : standard, non signal safe, limitation sur le nombre de descripteur
    2. poll() : standard, non signal safe
    3. pselect() : standard, signal safe, limitation sur le nombre de descripteur
    4. ppoll() : non standard, signal safe
    5. epoll_wait() : non standard, non signal safe, grandes performances
    6. epoll_pwait() : non standard, signal safe, grandes performances


    en espérant avoir pu aider.
    Cordialement.

  7. #7
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Merci pour ces precisions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Blocage, thread et pipes
    Par ernie74 dans le forum Framework .NET
    Réponses: 5
    Dernier message: 14/07/2011, 11h10
  2. Thread de lecture d'un pipe et condition d'arrêt
    Par Plumb dans le forum Threads & Processus
    Réponses: 10
    Dernier message: 12/01/2011, 14h32
  3. Probleme de threads et de pipes
    Par Marc san dans le forum C
    Réponses: 7
    Dernier message: 22/02/2006, 21h32
  4. pipe / thread /process /abus de language
    Par emardjean dans le forum MFC
    Réponses: 4
    Dernier message: 17/01/2006, 14h20
  5. [THREAD] probleme de pipe
    Par mehdiyassin dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 01/07/2004, 13h50

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