В настоящее время библиотека GNU C использует разворот DWARF2 для аннулирования pthread, так что оба обработчика очистки С++ и обработчики очистки отмены pthread вызываются через процесс разворачивания общего цикла вызова, который при необходимости вызывает деструкторы для автоматических объектов. Однако, насколько я могу судить, до сих пор нет стандарта, который определяет взаимодействие между потоками (POSIX) и С++, и, предположительно, приложение, желающее быть переносным, должно предположить, что исключение исключений из контекстов очистки отмены также равно как undefined как вызывая longjmp
из них, и что отмена потока, у которого есть прямые автоматические объекты с нетривиальными деструкторами, также является undefined.
Происходит ли какой-либо процесс стандартизации, который затрагивает это взаимодействие, или это то, что можно ожидать в будущем undefined? Имеет ли С++ 11 аналогичное понятие об уменьшении потока POSIX в поддержке потока?