我有以下函数用作 windows 光纤的入口点。
void foo(void*) {
for(int i =0; i < 10; ++i) { doStuff(); }
}
现在我SwitchToFiber
在一个 for 循环中调用我的 main;类似于以下内容。
int main() {
... create the fiber and stuff
for (int i = 0; i < 50; ++i) {
SwitchToFiber(foo_fiber_ptr);
// how do I tell if foo has already finished execution?
// (without passing in a state variable to communicate.)
if (someCondition) { break; }
}
... do stuff
}
所以我的问题是:我如何判断 foo 是否已经完成执行?(无需传入状态变量或声明全局状态变量进行通信。)