Annullare una discussione usando pthread_cancel: buona pratica o ctriggers

Ho un programma C ++ su Linux (CentOS 5.3) che genera più thread che sono in un ciclo infinito per eseguire un lavoro e dormire per determinati minuti. Ora devo cancellare i thread in esecuzione nel caso in cui arrivi una nuova notifica di configurazione e inizi appena un nuovo set di thread, per il quale ho usato pthread_cancel. Quello che ho osservato era che i fili non venivano fermati anche dopo aver ricevuto l’indicazione di annullamento, anche se alcuni fili del sonno si stavano avvicinando dopo che il sonno era completato.

Dato che il comportamento non era desiderato, l’uso di pthread_cancel nello scenario menzionato solleva la questione dell’essere buone o cattive pratiche.

Si prega di commentare l’utilizzo di pthread_cancel nello scenario sopra citato.