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

POSIX C Discussion :

Messages queues - mon processus lit ses propres messages


Sujet :

POSIX C

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Messages queues - mon processus lit ses propres messages
    Bonjour,

    J'utilise des messages queues pour communiquer entre 2 processus (en me basant sur le très bon tuto http://fabrice-boissier.developpez.c...ction-posix-mq)

    Un processus A ecrit un message dans la queue(mq_send), un processus B lit ce message (mq_receive) puis effectue un traitement et puis envoie un nouveau message dans la queue qui sera lu par le processus A.

    Or, il arrive régulierement que le processus A envoie son message puis quand il se met en attente de réception du message de B, il lise son propre message (j'imagine que le processus B n'a pas eu le temps de prendre le message dans la queue).

    Y a-t-il un moyen d'éviter cela ?

    Est-ce que les mq ne sont pas adaptées dans mon cas ? dans ce cas, je pourrais utiliser des sockets (qui sont moins performant d'après ce que j'ai compris. je développe des applis temps réelles qui demandent une bonne réactivité).

    Merci pour votre aide.
    Fab

  2. #2
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Oula non ! Pour autant que je sache, les sockets sont beaucoup plus rapides et surtout beaucoup plus simples a utiliser !

    Or, il arrive régulierement que le processus A envoie son message puis quand il se met en attente de réception du message de B, il lise son propre message (j'imagine que le processus B n'a pas eu le temps de prendre le message dans la queue).
    Il y a quelques annees je m'en etais servi pour un projet scolaire mais je n'avais pas rencontre ce probleme... Ca me parait bizarre... Je sais que je devais notifier mon programme pour qu'il aille ensuite lire le message. Je cherche comment je faisais et je te poste ca des que j'ai retrouve.

    EDIT: les messages queue sont plus rapides, erreur de ma part. Ce lien donne un apercu des differences de performance.

  3. #3
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Je n'ai pas de connaissances sur les sockets pour apporter un avis dessus.

    Par contre pour les messages queue il est possible de faire ce que tu veux.
    Mais c'est beaucoup moins performant que d'utiliser deux messages queue.
    Le cas de la message queue bidirectionnelle est très rarement utilisé.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut -
    les mq ne passent pas parles routines réseaux, elles sont par définition plus rapide.

    je pense que je vais passer par 2 mq finalement.

    Merci à tous.

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

Discussions similaires

  1. comment retrouver ses propres messages
    Par aktos dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 06/09/2008, 12h12
  2. Suggestion : Rechercher parmi ses propres messages
    Par smyley dans le forum Evolutions du club
    Réponses: 4
    Dernier message: 24/12/2007, 13h42
  3. Suppression de ses propres messages
    Par Eusebius dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 8
    Dernier message: 11/07/2006, 13h40
  4. Suppression de ses propres messages dans une discussion
    Par Kcirtap dans le forum Evolutions du club
    Réponses: 2
    Dernier message: 18/04/2006, 08h37
  5. Comment trouver ses propres messages ?
    Par naldov dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 18/10/2005, 18h56

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