diff options
| author | sakumisu <[email protected]> | 2023-11-24 21:11:25 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2023-11-24 21:11:25 +0800 |
| commit | b5f0c043e7a54706cbe48db4189be1c44ceddfaf (patch) | |
| tree | 1702c52a0e7f56d25eafae21c43cc6ce67c393cd | |
| parent | 84299ce80b653ad5af8f3c869a904d67235c76d5 (diff) | |
reset sem before taking
| -rw-r--r-- | osal/usb_osal_freertos.c | 1 | ||||
| -rw-r--r-- | osal/usb_osal_rtthread.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/osal/usb_osal_freertos.c b/osal/usb_osal_freertos.c index 2c4ed542..b98b69ac 100644 --- a/osal/usb_osal_freertos.c +++ b/osal/usb_osal_freertos.c @@ -35,6 +35,7 @@ void usb_osal_sem_delete(usb_osal_sem_t sem) int usb_osal_sem_take(usb_osal_sem_t sem, uint32_t timeout) { + xQueueReset((QueueHandle_t)sem); if (timeout == USB_OSAL_WAITING_FOREVER) { return (xSemaphoreTake((SemaphoreHandle_t)sem, portMAX_DELAY) == pdPASS) ? 0 : -ETIMEDOUT; } else { diff --git a/osal/usb_osal_rtthread.c b/osal/usb_osal_rtthread.c index 964c1a7f..4713e189 100644 --- a/osal/usb_osal_rtthread.c +++ b/osal/usb_osal_rtthread.c @@ -40,6 +40,7 @@ int usb_osal_sem_take(usb_osal_sem_t sem, uint32_t timeout) int ret = 0; rt_err_t result = RT_EOK; + rt_sem_control((rt_sem_t)sem, RT_IPC_CMD_RESET, (void *)0); if (timeout == USB_OSAL_WAITING_FOREVER) { result = rt_sem_take((rt_sem_t)sem, RT_WAITING_FOREVER); } else { |
