【记录一个问题】android下的ucontext协程,因为使用栈上的对象,导致cv::Mat被莫名析构

工作的流程是这样:某个协程在栈上创建task对象,在task对象内有需要返回的cv::Mat。
然后把task放到另一个线程上去执行,然后切换到别的协程,等到工作线程执行完task后,再唤醒协程。
这时候协程内去访问cv::Mat使用是empty。

同样的代码,task对象不是在栈上创建,而是new出来,一切正常。

暂未找到原因,怀疑与栈的拷贝有关。其实也打印了使用各个阶段的指针的地址,发现地址未发生改变。

posted on 2019-10-02 23:07  ahfuzhang  阅读(301)  评论(0编辑  收藏  举报