Partage
  • Partager sur Facebook
  • Partager sur Twitter

Watchdog Timer logiciel ?

    5 décembre 2019 à 16:36:36

    Bonjour ;

    Je voudrais savoir si c'est possible d'ajouter un mon programme un watchdog timer de façon purement logicielle qui arrête l'exécution si on dépasse un certain temps ?

    J'ai cherché un peu sur internet je n'ai pas trouvé grand chose ..

    Merci de m'éclairer et de me donner des pistes !

    • Partager sur Facebook
    • Partager sur Twitter
      5 décembre 2019 à 17:46:44

      Quel OS ?
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        6 décembre 2019 à 10:22:36

        De manière standard c'est impossible.

        Avec POSIX il est possible d'utiliser le triple fork/exec/wait et finalement kill si nécessaire.

        • Partager sur Facebook
        • Partager sur Twitter

        git is great because Linus did it, mercurial is better because he didn't.

          6 décembre 2019 à 13:09:56

          Un simple appel de

          alarm( 60 );

          et l'application s'arrête 60 secondes plus tard (réception d'un événement non catché).

          • Partager sur Facebook
          • Partager sur Twitter

          En recherche d'emploi.

            6 décembre 2019 à 14:06:47

            Dalfab a écrit:

            Un simple appel de

            alarm( 60 );

            et l'application s'arrête 60 secondes plus tard (réception d'un événement non catché).


            Au fait, c'est que j'utilise pour le moment ..
            • Partager sur Facebook
            • Partager sur Twitter
              6 décembre 2019 à 14:53:07

              >et l'application s'arrête 60 secondes plus tard (réception d'un événement non catché).

              C'est "try/catch/finaly/current transaction/monitor de tout poil" compliant ce truc ???

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                7 décembre 2019 à 5:20:30

                En même temps, si tu tombes dans le fallback d'un watchdog, c'est que le programme est un peu parti en live (probablement une boucle infinie ou un deadlock), donc la compliance, on s'en balance un peu, vu que de toute façon c'est vautré...

                Un watchdog n'est pas forcément un bon plan, surtout dans un environnement multi-thread, si un thread qui rafraîchit le watchdog n'est pas planté, le watchdog est rafraîchi, donc tu peux te retrouver avec un programme planté qui ne sera pas arrêté...

                En embarqué, on a des watchdogs matériels, si tu ne les rafraîchis pas dans le temps imparti, c'est le reset hard au bout de la route et il ne demande rien à qui que ce soit, c'est pin 0,  point à la ligne. C'est assez brutal, mais ça peut servir dans certains environnements, notamment ceux qui sont très perturbés électriquement.

                -
                Edité par int21h 7 décembre 2019 à 5:28:43

                • Partager sur Facebook
                • Partager sur Twitter
                Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

                Watchdog Timer logiciel ?

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown