调用纯虚方法,在没有活动异常的情况下终止调用,pthreads,opencv

时间:2015-12-27 07:01:17

标签: c++ pthreads

我的代码具有以下基本结构,

pthread_t worker, processor; 

int i = 0;

int main(..) {

    pthread_create(worker,NULL,loop,NULL);

    char inp;
    cin >> inp;
    while(inp != 'q') {
        cin >> inp;
    }

    i = 1;

    pthread_join(processor,NULL);
    pthread_join(worker,NULL);

    return 0;

}

void *loop(..) {

    while(i==0) {
        //do stuff
        pthread_join(processor,NULL);
        pthread_create(processor,NULL,process,NULL);

    }
    pthread_exit(NULL);
}
void *process(..) {

    //do stuff
    pthread_exit(NULL);

}

除非我按'q',否则一切正常,

调用纯虚方法,在没有活动异常的情况下终止调用

就在退出之前。我不明白为什么,因为我加入了我退出之前创建的所有线程。帮助!

我正在使用gcc

在debian(armhf)上运行它

编辑:我尝试了上面的示例而没有我的opencv内容,没有问题。所以我相信我提出了错误的问题。 在gdb中,我可以看到我对opencv(3.0.0)API的第一次调用生成了8个线程。他们永远不会退出。 这些线程可能在退出之前没有连接吗?我不知道如何让他们加入,因为我不是创造他们的人。

0 个答案:

没有答案