Je cherche à terminer mon programme quand le thread lancé depuis celui-ci lui en envoi le signal. J'imagine que exit(1) ne fonctionnera pas et je ne sais pas trop comment m'y prendre.
Je cherche à terminer mon programme quand le thread lancé depuis celui-ci lui en envoi le signal. J'imagine que exit(1) ne fonctionnera pas et je ne sais pas trop comment m'y prendre.
Pourquoi exit() ne fonctionnerait pas ?
Autant pour moi, ça fonctionne. Mais il se passe quelque chose d'étrange : j'ai une application serveur et elle est sensée se terminer avec le fameux signal du thread (qui correspond à un client). J'ai donc mis un test sur le buffer de réception et s'il est vérifié alors exit(1).
Résultat, après la réception du signal mon programme me laisse entrer 2 commandes (qui ne répondent pas) puis se termine.
Pourquoi mon application ne se termine-t-elle pas directement ?
Quelle plate-forme ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Sous Windows, un processus se termine dans plusieurs circonstances. En gros, quand tous les threads sont terminés, quand main() retourne, ou quand n'importe quel thread appelle ExitProcess(). Tu peux essayer de ce coté-ci...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Mon problème est résolu. J'ai modifié une partie du code dans le thread tout en laissant exit(1). Et maintenant, ça fonctionne très bien sans que j'ai vraiment eu le temps de comprendre ce qui c'est passé.
Merci
Partager