如何使用 C++ boost 停止(中断)光纤?
例如
fiber.stop()
我如何使用 c+ boost 执行 fiber join(time)(默认 api 不接受最长等待时间)? 例如:
fiber.join(1000);
有可能挂起一个纤程,在磁盘上序列化它,然后在系统中重新加载它吗?
最佳答案
boost.fiber 仿照 std::threads 的 API - 没有中断功能,也没有定时连接。
您不能序列化纤程,因为这意味着序列化纤程的堆栈,这是不可能的……至少在没有编译器支持的情况下是不可能的。
不推荐堆栈序列化,因为编译器必须注意指向分配在堆栈上的对象的指针,例如必须在相同的地址重新分配对象,或者必须在反序列化纤程(重新加载)后重写指针。
RAII 违规将很容易发生等......
关于C++ 提升 :fiber - How can i interrupt a fiber or join waiting until a maximum time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948804/