问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
/************** POST 线程*******************/
if(result->retRoi[0]) {
printf("检测到运动\n");
if(lcd_flag == 0){
lcd_flag = 1;
}
if(faceDec_flag == 0) {
printf("facedet POST\n");
sem_post(&facedet_sem);
}
}
/***************** WAIT 线程*********************/
printf("faceDec_flag = %d\n",faceDec_flag);
if (faceDec_flag == 0) {
sem_wait(&facedet_sem);
faceDec_flag = 1;
}
运行结果及报错内容
post一段时间才唤醒
检测到运动
facedet POST
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
movedec_flag = 1
movedec_flag = 1
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
movedec_flag = 1
movedec_flag = 1
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
movedec_flag = 1
movedec_flag = 1
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
检测到运动
facedet POST
movedec_flag = 1
检测到运动
facedet POST
/********* 唤醒 ***********/
检测到运动
movedec_flag = 1
faceDec_flag = 1
检测到运动
movedec_flag = 1
检测到运动
movedec_flag = 1
faceDec_flag = 1
检测到运动
我的解答思路和尝试过的方法
我想要达到的结果
想知道可能是什么原因,如何解决