Boost::context模块callcc的jump_void测试代码
Boost::context是一个跨平台的C++库,提供协程模型。其中的callcc函数可以在不同的栈上来回切换执行,实现协程的切换。而jump_void函数则可以在两个栈之间跳转,并将返回值设置为空指针。
下面是一个使用Boost::context中的callcc和jump_void函数的测试代码:
#include <boost/context/all.hpp>
#include <iostream>
void stack2(boost::context::continuation&& sink)
{
std::cout << "enter stack2" << std::endl;
sink = std::move(sink).resume();
std::cout << "leave stack2" << std::endl;
}
void stack1(boost::context::continuation&& sink)
{
std::cout << "enter stack1" << std::endl;
sink = boost::context::callcc(std::move(sink), stack2);
std::cout << "leave stack1" << std::endl;
}
int main()
{
std::cout << "enter main" <<