Это makecontext () / Функции swapcontext (), совместимые с C ++

В средах unix семейство функций makecontext () / swapcontext () иногда используется для реализации сопрограмм в C. Однако эти функции напрямую управляют стеком и потоком выполнения. Часто, когда эти низкоуровневые функции сильно различаются при переходе с C на C ++.

Итак, вопрос в том, возникнет ли какая-либо проблема с реализацией сопрограмм с использованием makecontext () и swapcontext () . Конечно, очевидно, что нужно очень внимательно следить за тем, чтобы исключение никогда не могло избежать такой сопрограммы, поскольку для этого в стеке не будет обработчика исключений, и программа, скорее всего, будет иметь segfault. Но кроме этого, есть ли какая-либо несовместимость между тем, как C ++ обрабатывает вещи внутри, и makecontext () и setcontext () изменяют путь выполнения?

9
задан LiKao 13 February 2012 в 11:12
поделиться