Почему деструктор boost :: thread отключает присоединяемый поток вместо вызова terminate (), как предлагает стандарт?

В соответствии с черновиком стандарта C ++ 0x, этот код:

void simplethread()
{
    boost::thread t(someLongRunningFunction);
    // Commented out detach - terminate() expected.
    // t.detach();  
}

... должен привести к вызову terminate (), но в текущей (boost 1.46.1) реализации boost потоков, которых нет, поток просто отключается в деструкторе и продолжается.

Мой вопрос: почему?

Я думал, что boost :: thread настолько встроен в черновой стандарт, насколько это возможно.

Есть ли для этого дизайнерская причина? Будет ли он изменен в будущих версиях boost :: thread?

9
задан mhl666 3 May 2011 в 19:17
поделиться