void helloFiber(boost::fibers::future<void> &f)
{
cout << "Hello, boost::fiber" << endl;
f.get();
}
int main()
{
boost::fibers::promise<void> pm;
boost::fibers::future<void> ft = pm.get_future();
{
boost::fibers::fiber f(helloFiber, std::move(ft));
cout << "Before join." << endl;
f.detach();
}
pm.set_value();
cout << "After join." << endl;
return 0;
}
This program outputs: Before join. After join. Hello, boost::fiber.
Why does it not output: Before join. Hello, boost::fiber After join.