为什么 boost::fiber 块?
Why boost::fiber blocks?
我正在尝试使用 boost::fiber 库,但 "Hello, World" 示例存在问题。在下面的代码中,程序流在 fiber 完成后阻塞,并且 main 函数永远不会 returns.
#include <iostream>
#include <boost/fiber/all.hpp>
using namespace std;
void helloFiber()
{
cout << "Hello, boost::fiber" << endl;
}
int main()
{
boost::fibers::fiber f(helloFiber);
cout << "Before join." << endl;
f.join();
cout << "After join." << endl;
return 0;
}
结果是:
Before join.
Hello, boost::fiber
我用 modular-boost 的当前开发分支构建了 boost::fiber 当前开发分支。这是当前实现中的行为错误还是我的使用有问题?
试试这个
int main()
{
boost::fibers::fiber f(helloFiber);
f.detach();
f.join();
return 0;
}
您的测试应用打印:
加入之前。
你好,boost::fiber
加入后
也许您从分支 develop
中检查了一个损坏的版本
我正在尝试使用 boost::fiber 库,但 "Hello, World" 示例存在问题。在下面的代码中,程序流在 fiber 完成后阻塞,并且 main 函数永远不会 returns.
#include <iostream>
#include <boost/fiber/all.hpp>
using namespace std;
void helloFiber()
{
cout << "Hello, boost::fiber" << endl;
}
int main()
{
boost::fibers::fiber f(helloFiber);
cout << "Before join." << endl;
f.join();
cout << "After join." << endl;
return 0;
}
结果是:
Before join.
Hello, boost::fiber
我用 modular-boost 的当前开发分支构建了 boost::fiber 当前开发分支。这是当前实现中的行为错误还是我的使用有问题?
试试这个
int main()
{
boost::fibers::fiber f(helloFiber);
f.detach();
f.join();
return 0;
}
您的测试应用打印:
加入之前。 你好,boost::fiber 加入后
也许您从分支 develop
中检查了一个损坏的版本