对这个问题记忆深刻。
的确要一层一层的遍历下去找到当前handle,但是我记得应该可以把handle存起来?
我当时也在想要不要存起来,后来觉得自己没有deep call,遍历更简单就没那么做。
stackless的协程有传染性,整个链上都要是协程,好像还有类型要求。
一个简单但印象深刻的:
int a = co_await return_integer();
std::string s = co_await return_std_string();
int sum = a + std::stoi(s);
...
我记得这两个co_await的协程的返回值类型不同,就不行。
【 在 ensonmj 的大作中提到: 】
: stackless每一次resume都要从top状态一层层遍历下来,不像stackfull直接记录ip,在嵌套比较深的情况下感觉效率有点低。
: 另外rust的async实现每次resume的时候好像还要copy这个状态机到执行线程站上,那就更慢了。不知道为啥要这么实现
--
FROM 158.140.1.*