boost::fiber scheduling - when and how
问题 According to the documentation the currently-running fiber retains control until it invokes some operation that passes control to the manager I can think about only one operation - boost::this_fiber::yield which may cause control switch from fiber to fiber. However, when I run something like bf::fiber([](){std::cout << "Bang!" << std::endl;}).detach(); bf::fiber([](){std::cout << "Bung!" << std::endl;}).detach(); I get output like Bang!Bung! \n \n Which means control was passed between <<