Concurrency Control Flow 并发流程控制
一个基于协程和libuv的C++框架,仅通过 start 、 await 、 all_of 、 any_of 控制流程。
任务
原语
start —— 异步地执行一个<任务>,该过程不阻塞当前任务的执行,目标任务启动后立即继续 await —— 同步地执行一个<任务>,该过程会阻塞当前任务的执行,等待目标任务执行完成后继续 all_of —— 将多个<任务>组合为一个新的任务,全部任务执行完成后新的任务视为执行完成
any_of —— 将多个<任务>组合为一个新的任务,任一任务执行完成后新的任务视为执行完成,同时会取消掉其他未执行完成的任务
示例:你需要等待两个udp的recv事件,并且需要设置一个超时时间,则你可以用使用:
await( any_of( all_of( udp0.recv, udp1.recv ), sleep(x ms) ) )