我修改了一下,简化了一下one_step的函数.现在看起来没啥问题了.
我把这个类重新命名成了corof::long_jmper,因为task这个名字已经被占用了.
修改的地方:
1. 把promise改成了非template的,内部用any,这样long_jmper就可以支持await不同的type
代价是需要一个eval_op<T>提供any_cast的type
2. 把单步运行里面的寻找handle和执行handle分开了,并且只允许resume一次.
放个链接在这里,欢迎批判:
https://raw.githubusercontent.com/etorth/mir2x/c%2B%2B20/common/src/corof.hpp
调用实例:corof::long_jmper Monster::updateCoroFunc(),文件:
https://raw.githubusercontent.com/etorth/mir2x/c%2B%2B20/server/monoserver/src/monster.cpp
updateCoroFunc()的各个子coroutine定义:
https://raw.githubusercontent.com/etorth/mir2x/c%2B%2B20/server/monoserver/src/monsterco.cpp
--
修改:allegro FROM 158.140.1.*
FROM 158.140.1.*