info] 导语: 在先前的文章《从无栈协程到C++异步框架》中,我们探讨了如何将上层的协程调度器与底层的C++17协程实现以及C++20协程实现相结合,从而构建一个在单线程环境下易于使用的异步框架...目前项目希望引入协程对其中一部分代码的实现进行重构, 以使其有更简单的实现, 同时 CE 本身也是运行在前面所说的固定线程池状态下的:
JobSystem图
这种情况下, 我们想引入协程, 初步考虑...- AwaitMode::kAwaitNever: 不等待下次的唤醒继续执行协程 - AwaitMode::kAwaitNothing: 一些特殊的实现如transfer会自己接管协程的后续调度, 直接使用该项通知协程直接退出协程..., 整个transfer流程就顺利完成了, 再次被唤醒执行的协程已经运行在了新的线程上, 这也是我们多线程环境下coroutine调度的一个比较重要的特性, 在协程执行的过程中, 你始终可以选择一个符合预期的工作线程来执行当前协程...带具体返回值的协程函数 -> 利用cotask20或者cotask17我们可以方便的给模块增加协程接口, 用协程实现异步逻辑.