在 unix 环境中makecontext()/swapcontext()
,函数族有时用于在 C 中实现协程。然而,这些函数直接操作堆栈和执行流程。通常,当从 C 切换到 C++ 时,这些低级功能完全不同。
makecontext()
所以问题是,如果使用and实现协程会有任何问题swapcontext()
。当然,显然必须非常小心,异常永远无法逃脱这样的协程,因为堆栈上没有异常处理程序,并且程序很可能会出现段错误。但除此之外,C++ 内部处理事物的方式makecontext()
与setcontext()
修改执行路径之间是否存在不兼容?