Bonjour,

Je ne comprends pas le fonctionement des signaux avec les thread, voici les essais que j'ai fait :

J'intercepte SIGINT avec la fonction signal et je bloque SIGINT avec la fonction pthread_sigmask

1er essai :
J'intercepte SIGINT dans mon main
Je bloque SIGINT
Je lance un thread qui intercepte aussi SIGINT
-> personne ne recoit SIGINT : OK

2e essai :
J'intercepte SIGINT dans mon main
Je lance un thread qui intercepte aussi SIGINT
Je bloque SIGINT
-> Mon deuxieme thread recoit sigint : OK car SIGINT n'etait pas bloqué lorsque jj'ai lancé ce thread

3e essai :
J'intercepte SIGINT dans mon main
Je lance un thread qui n'intercepte PAS SIGINT
Je bloque SIGINT
-> Mon _premier_ thread recoit SIGINT : ??? il est pourtant bloqué, pourquoi ça ne fait pas comme dans mon premier essai ?


4e essai :
J'intercepte SIGINT dans mon main
Je bloque SIGINT
Je lance un thread qui intercepte aussi SIGINT (mais ce thread est censé hériter du masque de mon main)
je debloque SIGINT
-> Mon deuxieme thread recoit SIGINT : ??? il était bloqué lors du lancement de ce thread, ça aurait du etre le main qui recoit SIGINT

PS : je vérivifie toujours le retour de pthread_sigmask qui est OK à chaque fois

Merci