Skip to content

v0.2.0

Compare
Choose a tag to compare
@kedixa kedixa released this 24 Mar 06:55
· 161 commits to master since this release
57e97cc

使用Coke v0.2.0时建议依赖Workflow v0.11.3版本。

新增组件

  1. 异步信号量TimedSemaphore
  2. 异步锁TimedMutex
  3. 异步共享锁SharedTimedMutex
  4. 有向无环图任务DagBuilderDagGraph等,该组件很大程度上参考了google/marl,尤其是令我坚定了放弃在边上传递消息的信心

重构组件

  1. 使用可取消定时器机制重构了Future

新增功能

  1. 增加create_future(Task<T> &&task)函数,启动一个协程任务task并返回coke::Future,后者可用于等待前者结束,类似于线程模式中的std::async
  2. 增加QpsPool::get_if(unsigned count, const NanoSec &nsec),仅当可在nsec时间内获取到count个Qps许可时才产生等待任务,以解决某些场景下并发数远高于Qps时,一些协程等待过久的问题
  3. 休眠任务增加了只可被取消的类型,以InfiniteDuration参数标记,原则上来说应当比带时间的可取消休眠任务效率更高,但实际效率却更低,日后再做分析

Full Changelog: v0.1.0...v0.2.0