diff options
Diffstat (limited to 'osal/usb_osal_rtthread.c')
| -rw-r--r-- | osal/usb_osal_rtthread.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/osal/usb_osal_rtthread.c b/osal/usb_osal_rtthread.c index a0f7563c..964c1a7f 100644 --- a/osal/usb_osal_rtthread.c +++ b/osal/usb_osal_rtthread.c @@ -40,7 +40,11 @@ int usb_osal_sem_take(usb_osal_sem_t sem, uint32_t timeout) int ret = 0; rt_err_t result = RT_EOK; - result = rt_sem_take((rt_sem_t)sem, rt_tick_from_millisecond(timeout)); + if (timeout == USB_OSAL_WAITING_FOREVER) { + result = rt_sem_take((rt_sem_t)sem, RT_WAITING_FOREVER); + } else { + result = rt_sem_take((rt_sem_t)sem, rt_tick_from_millisecond(timeout)); + } if (result == -RT_ETIMEOUT) { ret = -ETIMEDOUT; } else if (result == -RT_ERROR) { @@ -92,7 +96,11 @@ int usb_osal_mq_recv(usb_osal_mq_t mq, uintptr_t *addr, uint32_t timeout) int ret = 0; rt_err_t result = RT_EOK; - result = rt_mq_recv((rt_mq_t)mq, addr, sizeof(uintptr_t), rt_tick_from_millisecond(timeout)); + if (timeout == USB_OSAL_WAITING_FOREVER) { + result = rt_mq_recv((rt_mq_t)mq, addr, sizeof(uintptr_t), RT_WAITING_FOREVER); + } else { + result = rt_mq_recv((rt_mq_t)mq, addr, sizeof(uintptr_t), rt_tick_from_millisecond(timeout)); + } if (result == -RT_ETIMEOUT) { ret = -ETIMEDOUT; } else if (result == -RT_ERROR) { |
