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 :

Problème WaitQueue: wait_event et poll_wait qui n'attendent jamais.


Sujet :

Linux

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème WaitQueue: wait_event et poll_wait qui n'attendent jamais.
    Bonjour,

    J'essaye de développer un driver, dont un des services offerts est un .poll.
    Mon problème est que dans ma fonction driver_poll(.), mon poll_wait n'attend jamais bien qu'aucun wake_up(.).

    Mon code est du genre*:
    static DECLARE_WAIT_QUEUE_HEAD(MaWq)*;

    static unsigned int driver_poll(struct file *filp, poll_table *attente)

    {

    int retour = 0;



    poll_wait(filp, & MaWq , attente);



    retour |= POLLIN | POLLRDNORM;



    return retour;

    }

    J'ai donc essayé de remplacer l'appel à poll_wait(.) par wait_event_interruptible(MaWq , 1) et par wait_event(MaWq , 1) et toujours aucune attente bien qu'aucun wake_up(.).


    J'ai même essayé de mètre wait_event_interruptible(MaWq , 1) et wait_event(MaWq , 1) sur la fonction appelée lors de l'insmod de mon driver et encore le même problème......

    Je suis preneur de toute idée

    Merci

  2. #2
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Résolu sur http://forum.ubuntu-fr.org
    Autant que je me souvienne, poll_wait a un nom trompeur et n'est pas censé attendre quoi que ce soit. La fonction se contente d'enregistrer l'appel à poll, avec la liste des descripteurs de fichiers sur lesquels on appelle poll.

    Dans ton exemple, tu retournes toujours un masque "POLLIN | POLLRDNORM", soit "des données sont disponibles à la lecture", donc l'appel de poll n'est pas bloquant. Retourne donc un masque égal à 0, et ça devrait bloquer.

    Cela fait longtemps que je n'ai plus écrit de driver supportant poll, mais j'avais gardé ceci sous le coude, au cas où ça puisse te servir :
    http://tali.admingilde.org/dhwk/vorl...html#id2525652

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

Discussions similaires

  1. Problème de zone de texte qui s'étire.
    Par Shugo78 dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 01/08/2007, 23h04
  2. Réponses: 1
    Dernier message: 29/05/2007, 13h35
  3. problème de champs not null qui sont marqués null à la création
    Par Elianora la blanche dans le forum Outils
    Réponses: 6
    Dernier message: 02/02/2007, 10h33
  4. Réponses: 4
    Dernier message: 12/10/2006, 13h43
  5. Réponses: 2
    Dernier message: 15/03/2006, 11h13

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