1

我正在尝试使用boost::fiber库,但我遇到了“Hello, World”示例的问题。在下面的代码中,程序流在纤程完成后阻塞并且主函数永远不会返回。

#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;
}

结果是:

加入前。
你好,升压::纤维

我用modules-boost的当前开发分支构建了boost::fiber当前开发分支。这是当前实现中的行为错误还是我的使用有问题?

4

2 回答 2

1

您的测试应用打印:

加入前。你好, boost::fiber 加入后。

也许您已经从分支开发中签出了损坏的版本

于 2015-09-02T12:23:17.510 回答
-2

试试这个

int main()
{
  boost::fibers::fiber f(helloFiber);
  f.detach();
  f.join();

  return 0;
}

http://www.boost.org/doc/libs/1_58_0/doc/html/thread.html

于 2015-07-10T14:00:32.820 回答