sys_usbd: Improved usb_handler_thread timing

This commit is contained in:
brian218 2023-01-26 21:47:55 +08:00 committed by Megamouse
parent 71c3264ea7
commit 7648171fe2

View File

@ -367,7 +367,7 @@ usb_handler_thread::~usb_handler_thread()
void usb_handler_thread::operator()() void usb_handler_thread::operator()()
{ {
timeval lusb_tv{0, 200}; timeval lusb_tv{0, 0};
while (ctx && thread_ctrl::state() != thread_state::aborting) while (ctx && thread_ctrl::state() != thread_state::aborting)
{ {
@ -405,7 +405,10 @@ void usb_handler_thread::operator()()
} }
// If there is no handled devices usb thread is not actively needed // If there is no handled devices usb thread is not actively needed
thread_ctrl::wait_for(handled_devices.empty() ? 500'000 : 200); if (handled_devices.empty())
thread_ctrl::wait_for(500'000);
else
std::this_thread::yield();
} }
} }