# pthread\_kill

**URL:** <https://www.debian-fr.org/t/pthread-kill/3866>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 12:53 UTC](https://www.debian-fr.org/t/pthread-kill/3866 "2016-02-20T12:53:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gengis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/df705f/32.png) [@Gengis](https://www.debian-fr.org/u/Gengis)\
**Post date:** [Février 20, 2016, 12:53 UTC](https://www.debian-fr.org/t/pthread-kill/3866/1 "2016-02-20T12:53:40Z")

</div>

Bonjour tout le monde, j’écris ce message car je rencontre un petit problème avec la fonction pthread\_kill pour tuer des tâches que j’ai créé.

Voici comment je l’utilise :

```auto

```

“device[probe-1]” est un élément du tableau de structure device, “synchro” est le pthread\_t de la tâche que je veux tuer. Petit problème, quand je fais ceci il termine bien la tâche, mais apparament il termine aussi mon petit programme puisque je vois un “Killed” et le retour au prompt de l’invite de commande.

Comment tuer juste la tâche désignée ?

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 12:53 UTC](https://www.debian-fr.org/t/pthread-kill/3866/2 "2016-02-20T12:53:41Z")

</div>

j’ai jamais implémenté ça, mais en cherchant un ‘man pthread\_kill’ (je n’ai pas la page sur ma machine), je suis tombé dans [linux-kheops.com/doc/man/man … 3.txt.html](http://www.linux-kheops.com/doc/man/manfr/man-ascii-0.9/man3/pthread_kill.3.txt.html) sur[quote]BOGUES  
La gestion des signaux dans LinuxThreads ne respecte pas  
celle définie par le standard POSIX. Selon le standard, un  
signal “asynchrone” (externe) doit être dérouté vers le  
processus tout entier (c’est à dire vers tous les threads  
le composant) mais seul l’un deux doit le gérer. Celui-ci  
peut être n’importe lequel des threads ne bloquant pas le  
signal.[/quote]  
Alors je ne sais pas précisément ce que ça veut dire, mais ça se traduit peut être chez toi par l’envoi du signal à toutes les threads du processus qui ne masquent pas le signal, au lieu de ne l’envoyer qu’a une seule…  
non ?

---

<div class="post-metadata">

**Author:** ![Gengis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/df705f/32.png) [@Gengis](https://www.debian-fr.org/u/Gengis)\
**Post date:** [Février 20, 2016, 12:53 UTC](https://www.debian-fr.org/t/pthread-kill/3866/3 "2016-02-20T12:53:44Z")

</div>

Je pense que tu as raison, Linux n’arrive pas à gérer le “kill” des threads par un autres thread, en tout cas la fonction pthread\_kill ne marche pas comme elle devrait selon les tests que j’ai fait dessus, corrigez moi si vous trouvez comment faire.

Finalement j’ai cherché d’autres solution et j’ai trouvé une alternative intéressante avec la fonction pthread\_cancel qui permet de tuer la tâche dont on passe le descripteur en paramètre, elle est très simple et se révèle efficace 😉
