【C语言】一种状态超时阻塞循环查询的办法
1.方法1

static void wait_notify_async(notify_type_t notify_type)
{static rt_tick_t exit_tick;exit_tick = rt_time_get_msec();lb_int32 notify_success = RT_FALSE;static int timeout;CHKPNT;while (notify_success == RT_FALSE) {switch (notify_type) {case ADAS_EXITED:if (algorithm_status.adas_status == 2)notify_success = RT_TRUE;break;case BSD_EXITED:if (algorithm_status.bsd_status == 2)notify_success = RT_TRUE;break;case DMS_EXITED:if (algorithm_status.bsd_status == 2)notify_success = RT_TRUE;break;case RECORD_EXITED:if (record_status == 2)notify_success = RT_TRUE;break;case TAKE_PICTURE_STATUS:if (take_picure_status > 0)notify_success = RT_TRUE;break;default:break;}timeout = rt_time_get_msec() - exit_tick;if (timeout >= 10 * 1000)break;rt_thread_mdelay(10