Que signifie sig dans int pthread_kill (pthread_t thread, int sig)? Y a-t-il des sigs prédéfinis? : Ssig dans pthread_kill (thread pthread_t, int sig)
Répondre
En réponse à votre commentaire à propos de l'interruption de sommeil: Au lieu de tenter de forcer les signaux à travailler ici, avez-vous considéré à la place de sleep
en utilisant pthread_cond_timedwait
à la place? Il vous permet de dormir efficacement et fournit un mécanisme sûr pour interrompre le sommeil plus tôt via un pthread_cond_signal
.
sig est pour l'envoi du numéro de signal au thread. Les signaux standards sont décrits dans. Par exemple linux standard signals.
pthread_kill() ne supprimera pas un thread. La seule différence avec kill() est que le signal est géré par le thread désigné et n'est pas géré alors que ce thread a le signal masqué (voir pthread_sigmask()). Un signal comme SIGTERM va toujours par défaut terminer le processus entier.
Je l'ai considéré mais j'essaie d'éviter d'utiliser des conditions, si c'est possible. – lies
@return: Cela semble un raisonnement étrange: éviter les variables de condition, mais recourir ensuite aux signaux, d'autant plus que vous ne semblez pas à l'aise avec les gestionnaires de signaux. Des raisons pour lesquelles? – stefaanv