Impulso Cancelamento Tópico
-
22-07-2019 - |
Pergunta
Você pode cancelar a Thread impulso como se fosse um pthread?
Eu estou escrevendo um cão de guarda simples para encerrar threads de trabalho se falhar e não parece ser uma maneira de simplesmente cancelar um fio na biblioteca impulso Thread.
Solução
Eles não suportam cancelar, que é uma coisa boa, uma vez que pode causar todo tipo de problemas sutis.
Dê uma olhada na seção de docs que a interrupção do fio de cobertura eo boost :: thread_interrupted exceção e moda algo que lhe permite realizar o que deseja ao mesmo tempo, limpar as coisas.
Outras dicas
Eles não suportam o cancelamento para fora da caixa (como fora apontado por Duck ), no entanto, dependendo do processamento acontecendo dentro do seu segmento de trabalho (s), eu consideraria usando um boost::condition
para notificar o segmento que deverá terminar (limpa) na primeira oportunidade.