From fa6afb96cee614fac061c497fd27094897ebbe2e Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Thu, 21 Jan 2021 11:22:04 +0300 Subject: [PATCH] check usleep() retval --- src/ustreamer/encoders/omx/encoder.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/ustreamer/encoders/omx/encoder.c b/src/ustreamer/encoders/omx/encoder.c index 2dc579d..e52b6c3 100644 --- a/src/ustreamer/encoders/omx/encoder.c +++ b/src/ustreamer/encoders/omx/encoder.c @@ -221,18 +221,20 @@ static int _vcos_semwait(VCOS_SEMAPHORE_T *sem) { if (sem_status == VCOS_SUCCESS) { return 0; } else if (sem_status != VCOS_EAGAIN || get_now_monotonic() > deadline_ts) { - goto error; + break; + } + if (usleep(1000) < 0) { + break; } - usleep(1000); } - error: - switch (sem_status) { - case VCOS_EAGAIN: LOG_ERROR("Can't wait VCOS semaphore: EAGAIN (timeout)"); break; - case VCOS_EINVAL: LOG_ERROR("Can't wait VCOS semaphore: EINVAL"); break; - default: LOG_ERROR("Can't wait VCOS semaphore: %d", sem_status); break; - } - return -1; + switch (sem_status) { + case VCOS_EAGAIN: LOG_ERROR("Can't wait VCOS semaphore: EAGAIN (timeout)"); break; + case VCOS_EINVAL: LOG_ERROR("Can't wait VCOS semaphore: EINVAL"); break; + default: LOG_ERROR("Can't wait VCOS semaphore: %d", sem_status); break; + } + return -1; + # else return (vcos_semaphore_wait(sem) == VCOS_SUCCESS ? 0 : -1); # endif