【发布时间】:2014-01-13 05:05:51
【问题描述】:
我有以下函数用作 windows 光纤的入口点。
void foo(void*) {
for(int i =0; i < 10; ++i) { doStuff(); }
}
现在我在我的主循环中调用SwitchToFiber;类似于以下内容。
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 是否已经完成执行?(无需传入状态变量或声明全局状态变量进行通信。)
【问题讨论】: