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

API, COM et SDKs Delphi Discussion :

Problème de mutex avec Waitforsingleobject non-bloquant


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut Problème de mutex avec Waitforsingleobject non-bloquant
    Au secours, je me trouve confronter à un probleme pour le moins bizarre.
    Peut etre est ce l'effet d'haloween sur mon ordinateur.

    J'utilise un mutex pour synchroniser des threads sur une ressource matèrielle, et j ai voulu faire un petit essai pour voir si cela fonctionné, mon code est donc le suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Mutex_Bdechargement:=CreateMutex(nil,false,'Mutex_Bdechargement');
     if getlasterror=ERROR_ALREADY_EXISTS then
     begin
        showmessage('Hello');
     end;
     Waitforsingleobject(Mutex_Bdechargement,infinite);
     Waitforsingleobject(Mutex_Bdechargement,infinite);
     Waitforsingleobject(Mutex_Bdechargement,infinite);
    Et là je suis étonné car quand je fais une execution pas à pas, les lignes
    "Waitforsingleobject" ne bloque pas l'éxécution du thread.
    J ai donc regardé si la fonction"Waitforsingleobject" passé en timeout (je sais c est bete) où était abandoned, mais ce n est pas le cas....

    Le mystère reste entier....
    [Modération]
    Titre modifié par Laurent Dardenne
    Ancien : Problème de mutex
    [/Modération]

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    as-tu vérifier avec ce tutoriel ?
    http://mdalbin.developpez.com/tutori...al/semaphores/

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    En effet , j ai regardé ce tutoriel, et pas que celui la d'ailleur, j ai du en lire 5 ou 6.
    Et je n ai pas trouvé la solution... Pareil avec la recherche sur google !

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut Re: Problème de mutex avec Waitforsingleobject non-bloquant
    Dans ce cas ton extrait de code risque d'être 'un peu court' ?
    Quelle version de Delphi ? de l'OS et SP ?

    Citation Envoyé par rvzip64
    Et là je suis étonné car quand je fais une execution pas à pas, les lignes "Waitforsingleobject" ne bloque pas l'éxécution du thread.
    Et uniquement dans ce cas là (mode débug)?

  5. #5
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Je pense que tu devrais utiliser les sections critiques pour synchroniser, elles servent justement à ce genre de choses

  6. #6
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    oui les mutex aussi servent aussi a ce genre de chose ! non ?

    Mon extrait de code est un peut court ?? je ne vois pas ce qui manque , dis moi de quoi tu as besoin et je le mettrais , mais a par la déclaration de la variable "Mutex_Bdechargement", il ne manque rien !

    Je programme sous delphi 7 avec windows 2000 prof SP4

  7. #7
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Personne n a jamais été cofronté a ce problème ??

Discussions similaires

  1. Problème avec serveur non bloquant
    Par Walm dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 18/11/2007, 04h17
  2. Lecture non bloquante sur plusieurs Sockets avec nio
    Par ratakses dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 19/04/2007, 16h14
  3. Select avec écriture non bloquante
    Par Invité dans le forum Réseau
    Réponses: 5
    Dernier message: 24/05/2006, 16h20
  4. problème de vérification formulaire (non bloquante)
    Par Florent08800 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/05/2006, 12h02
  5. Réponses: 5
    Dernier message: 02/09/2005, 12h47

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