diff options
| author | Zixun LI <[email protected]> | 2026-02-02 19:21:29 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-02 19:21:29 +0100 |
| commit | 3f1668a2c621e56bf80a068a0bf8cb5d52cbafea (patch) | |
| tree | 4dd8ed5fab8479c1793bd29302ac679af7269f3a /src/host | |
| parent | dc00f3536f7f636ffea639430faa2d828317137c (diff) | |
| parent | d2f1b1899d4dbdab2a5bfd822c3bbe5fc0ee8deb (diff) | |
Merge pull request #3478 from Precidata/limit-task-time-v2
Limit events processed by tud_task_ext() / tuh_task_ext()
Diffstat (limited to 'src/host')
| -rw-r--r-- | src/host/usbh.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/host/usbh.c b/src/host/usbh.c index a725b7c8b..41f41dcfb 100644 --- a/src/host/usbh.c +++ b/src/host/usbh.c @@ -599,8 +599,14 @@ void tuh_task_ext(uint32_t timeout_ms, bool in_isr) { return; } - // Loop until there is no more events in the queue - while (1) { + // Loop until there are no more events in the queue or CFG_TUH_TASK_EVENTS_PER_RUN is reached + for (unsigned epr = 0;; epr++) { +#if CFG_TUH_TASK_EVENTS_PER_RUN > 0 + if (epr >= CFG_TUH_TASK_EVENTS_PER_RUN) { + TU_LOG_USBH("USBH event limit (" TU_XSTRING(CFG_TUH_TASK_EVENTS_PER_RUN) ") reached\r\n"); + break; + } +#endif hcd_event_t event; if (!osal_queue_receive(_usbh_q, &event, timeout_ms)) { return; } |
