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