我如何使用C ++ Boost停止(中断)光纤?

例如

fiber.stop()


我如何使用c + boost执行光纤连接(时间)(默认api不接受等待的最大时间)?
  例如:

fiber.join(1000);

是否可以挂起光纤,将其序列化到磁盘上,然后将其重新加载到系统中?

最佳答案

boost.fiber是在std :: threads的API之后建模的-没有中断功能并且没有定时连接。

您无法序列化光纤,因为这将意味着无法序列化光纤的堆栈……至少在没有编译器支持的情况下也是如此。

不建议使用堆栈序列化,因为编译器必须注意指向分配在堆栈上的对象的指针,例如必须在反序列化光纤(重新加载)之后将对象重新分配到相同的地址,或者必须重新编写指针。

违反RAII的行为很容易发生,等等...

关于c++ - c++ boost:fiber-如何中断光纤或加入等待直到最大时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47948804/

10-11 22:20