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

Windows Discussion :

SetLocalTime et GetLocalTime thread safe


Sujet :

Windows

  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut SetLocalTime et GetLocalTime thread safe
    Bonjour à tous,

    Mon application possède 2 threads qui récupèrent régulièrement ( au ~500ms) l'heure du système. À l'aide de la fonction de l'API de Windows "GetLocalTime" et par la suite procède à des opérations diverses.

    De plus, à toutes les 12 heures, le premier thread doit récupérer l'heure d'un automate et affecté cet heure dans l'ordinateur où mon application s'exécute. La fonction utiliser pour affecter l'heure est "SetLocalTime" de l'API de Windows.

    Donc ma question ici serait de savoir ; Est-ce que le fait que le premier thread appel "SetLocalTime" en même temps que le deuxième thread appel "GetLocalTime" pourrait causer problème ?

    Est-ce que ces deux fonctions sont protégées à l'internet par un système de "CRITICAL_SECTION" ou "InterlockedExchange" ? Où dois-je le faire moi même ?

    Merci pour votre aide.
    Martin
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Erakis Voir le message
    Est-ce que ces deux fonctions sont protégées à l'internet par un système de "CRITICAL_SECTION" ou "InterlockedExchange" ? Où dois-je le faire moi même ?
    MSDN ne dit pas que les fonctions peuvent poser problème, or c'est en général dit explicitement quand c'est le cas... Elles sont donc normalement protégées de façon interne contre un accès concurrent.

    Habituellement, les appels API Win32 de ce genre sont réentrants et protégés, sauf mention explicite du contraire.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Comme mon application est en quelque sorte un acquisiteur de données, je dois savoir de façon sur que c'est bien protégé à l'interne, car l'heure est primordiale à l'acquisition...

    Comme je ne peux pas vraiment prendre de chance, alors je vais faire deux fonctions protégées par des sections critiques. C'est un peu déçevant que la MSDN ne soit plus claire sur le sujet
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Erakis Voir le message
    C'est un peu déçevant que la MSDN ne soit plus claire sur le sujet
    Je te l'ai dit : c'est par défaut protégé sauf mention explicite du contraire...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

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

Discussions similaires

  1. [RCP] Treeviewer non thread-safe ?
    Par Guildux dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 09/01/2007, 14h00
  2. fonction de stdio.h thread safe ??
    Par boolzor dans le forum POSIX
    Réponses: 3
    Dernier message: 30/04/2006, 21h03
  3. Code "Thread Safe" ?
    Par Neitsa dans le forum C++
    Réponses: 3
    Dernier message: 23/12/2005, 15h33
  4. [Language]Immutable & Thread-Safe
    Par Repti dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 21/12/2005, 16h50
  5. [MFC] CMAP non thread safe ?
    Par fmarot dans le forum MFC
    Réponses: 5
    Dernier message: 04/10/2005, 14h21

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