mirror of
https://github.com/apache/nuttx.git
synced 2025-05-08 22:32:04 +08:00

examples: There are two threads involved: thread A with a priority of 100 and thread B with a priority of 101. Here's how they interact: When thread A releases a semaphore, thread B is scheduled to execute some code and may reacquire the semaphore. If no other tasks are ready, thread A will be scheduled to run. This continuous process can lead to a busy loop. Thread A: Thread B: while (nxsem_get_value(&priv->wait, &semcount) >= 0 && <--- semcount <= 0) | 2)context switch { 1)contex switch | nxsem_post(&priv->wait); -------------> run some code and nxsem_wait again } Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>