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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top