Surveiller un thread

Signaler
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Bonjour a tous,

Je viens m'addresser aux experts pour un probleme que j'ai cru repérer dans mon programme.
Je m'explique: j'ai un prog C++ sous VISUAL qui est multithread.
Et hier soir dans la nuit il semblerait que l'un de ces threads se soit bloqué!
je ne dis pas tomber mais bien bloquer ....

alors je cherche un moyen pr surveiller ce genre de probleme pour killer puis relancer un nouveau!
Le truc c'est que si mon thread tombe je suppose que son HANDLE passe a INVALID et du coup je peux juste surveiller les handle de chaque thread
mais si il bloque juste , comment le detecter? est ce que son handle aura une valeur particuliere?
j'ai penser a une solution un peu triste: utiliser un compteur, qui s'incremente et le surveiller si il bloque : kill et relance!

mais aussi je me pose une question qd aux limites de  ce genre de fonctionnement: si j'ai un thread principal qui surveille mes threads, apres il va me falloir un thread pr surveiller mon thread principal etc....
c'est sans fin ! ca montre des limites tout ceci!

quel est le meilleur moyen de gérer cette surveillance?

Merci pr votre aide future et ALLEZ la france pour ce soir!

 

5 réponses

Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
personne n'ayant l'experience necessaire peut me repondre?
moi j'avoue que je suis trop novice donc j'aimerais profiter de l'experience des autres afin de peaufiner mon prog. ;-)

 
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
La meilleure soluce c'est quand même d'éviter le bloquage
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
mdr le probleme c'est que j'ai pu que constater les degats et a priori je ne sais pas ou ca bloque....
j'ai des communications séries/tcp-ip etc qui lancent des séries de calculs
je ne crois pas que mon thread soit planté mais juste bloqué et ca reste une supposition!

le truc sur c'est que je ne recevais plus de message et normalement j'ai un timer qui dit que si pas de message pendant 3minutes on kill et relance
comme ceci n'a apparement aps été fait je suppose que le thread était soit mort soit bloqué !!!

nan?

 
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Faut que tu trouves un moyen de l'espionner (le thread) pour voir où il plante, je sais pas, tu peux mettre des messages dans une console ou un fichier...
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
oui faut tracer un max et je pense faire le compteur qui s'incremente et si au bout de 5min il s'incremente plus ben je relance
on verra mais a mon avis c t un cas tres tres particulier!