nuttx/sched/wqueue
Jiuzhu Dong dc1c7a644a wqueue: delete sem_wait to avoid race condition
when work_cancel was called, we need to check work.timer whether is active
by WDOG_ISACTIVE for work_queue with delay.

The wdog cb has not been executed when the flag:active is cleared
and if we check flag:active at this moment, WDOG_ISACTIVE will return false.
so the work_cancel will sem_wait until post a semaphore, but all free hpwork_thread
also wait this semphore and their priority are high than caller, this will be a race
condition causing thread/task of calling work_cancel block.

Change-Id: Id86289da60bf967d1062c1cdaaf6959b4f6dd054
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-07-19 20:20:47 +08:00
..
kwork_cancel.c wqueue: delete sem_wait to avoid race condition 2021-07-19 20:20:47 +08:00
kwork_inherit.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
kwork_notifier.c sched/wqueue: merge kwork_lpthread.c and kwork_hpthread.c to kwork_thread.c 2021-06-28 14:09:59 +08:00
kwork_queue.c work_queue: schedule the work queue using the timer mechanism 2021-06-28 23:35:56 +08:00
kwork_thread.c wqueue: Fix unrefernce reference to `DEBUGASSERT' 2021-07-13 21:40:46 +08:00
Make.defs work_queue: schedule the work queue using the timer mechanism 2021-06-28 23:35:56 +08:00
wqueue.h work_queue: schedule the work queue using the timer mechanism 2021-06-28 23:35:56 +08:00