wandering-readily

Results 1 issues of wandering-readily

Exeutor.h中的execute()函数调用的std::async()捕获了AsyncExecutor的this指针,而AsyncExecutor的提前析构导致部分资源可能提前释放了,导致程序terminate; 我想的办法: 1. std::shared_ptr延长生命周期,但是Executor创建要使用std::make_shared类似的函数,那么class TaskPromise需要显示调用该类函数创建资源Executor executor,但是promise_type类的创建没有从文章和代码中找到相关的自定义构造函数信息; 2. 在析构函数中加入std::binary_semaphore等信号量,等待所有std::futures取完后发出析构函数继续信号,但是仍然程序terminate; 3. 类似NewThreadExecutor的std::thread()啥也不管,不获取futures;反正execute()承担的最后一项工作是handle.resume(),没有完成这个工作,协程内容不会加载到函数中,那么std::async()只执行func()内容即可,程序正常起来了; 不知道我的分析对不对~ (─‿─)