Есть ли какие-нибудь движения к определению взаимодействия исключений C ++ и отмены pthread?

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

Ведется ли какой-либо процесс стандартизации, направленный на это взаимодействие, или это то, что, как можно ожидать, не будет определено в будущем? Есть ли в C ++ 11 какое-либо аналогичное понятие для отмены потока POSIX в своей поддержке потоков?

10
задан R.. 25 February 2012 в 00:43
поделиться