diff --git a/APP_Framework/Framework/transform_layer/nuttx/transform.c b/APP_Framework/Framework/transform_layer/nuttx/transform.c index e8d10d294..d01176541 100644 --- a/APP_Framework/Framework/transform_layer/nuttx/transform.c +++ b/APP_Framework/Framework/transform_layer/nuttx/transform.c @@ -55,17 +55,19 @@ int PrivSemaphoreDelete(sem_t *sem) int PrivSemaphoreObtainWait(sem_t *sem, const struct timespec *abstime) { + /* if the timeout is not set, it will be blocked all the time. */ + if(!abstime) + { + return sem_wait(sem); + } + + /* if the timeout time is set, it will be executed downward after the timeout, and will not be blocked. */ struct timespec timeout; clock_gettime(CLOCK_REALTIME, &timeout); timeout.tv_sec += abstime->tv_sec; return sem_timedwait(sem, &timeout); } -int PrivSemaphoreObtainWaitForever(sem_t *sem) -{ - return sem_wait(sem); -} - int PrivSemaphoreObtainNoWait(sem_t *sem) { return sem_trywait(sem); diff --git a/APP_Framework/Framework/transform_layer/nuttx/transform.h b/APP_Framework/Framework/transform_layer/nuttx/transform.h index 4ac1ca2fa..39e868a8b 100644 --- a/APP_Framework/Framework/transform_layer/nuttx/transform.h +++ b/APP_Framework/Framework/transform_layer/nuttx/transform.h @@ -182,7 +182,6 @@ int PrivMutexAbandon(pthread_mutex_t *p_mutex); int PrivSemaphoreCreate(sem_t *sem, int pshared, unsigned int value); int PrivSemaphoreDelete(sem_t *sem); int PrivSemaphoreObtainWait(sem_t *sem, const struct timespec *abstime); -int PrivSemaphoreObtainWaitForever(sem_t *sem); int PrivSemaphoreObtainNoWait(sem_t *sem); int PrivSemaphoreAbandon(sem_t *sem); int32_t PrivSemaphoreSetValue(int32_t sem, uint16_t val);