Por que o destruidor do boost :: thread desanexa o thread juntável em vez de chamar terminate () como o padrão suger
De acordo com o rascunho da norma C ++ 0x, este código:
void simplethread()
{
boost::thread t(someLongRunningFunction);
// Commented out detach - terminate() expected.
// t.detach();
}
... deve resultar em uma chamada terminate (), mas na implementação atual (boost 1.46.1) dos threads de boost não ocorre, o thread simplesmente é desanexado no destruidor e continu
Minha pergunta é: por quê?
Eu pensei que o boost :: thread está tão alinhado com o rascunho padrão quanto possíve
Existe uma razão de design para isso? Será alterado nas versões futuras do boost :: thread?