mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
8a39db3fae
The select function wrapper was rewritten to be non-blocking on Linux systems, as it was stealing all the CPU time from lower priority tasks when called from a higher priority task. This is because the FreeRTOS scheduler does not know that the task thread is sleeping during the system call. This issue manifests all "slow" system calls on the Linux target, but handling the case of select fixes the problems for most ESP-IDF components. The FreeRTOS POSIX port documentation lists this as a known issue, so user code is responsible handling this case if other system calls are used, even if unknowingly. This closes GH issue #14395 "select() blocks the FreeRTOS scheduler on Linux target"