bc17563a8f
CPU0 CPU1 work_queue(a) work_queue(a) -> work_cancel(a) -> work_cancel(a) -> enter_critical() -> sq_addlast(a) -> leave_critical() -> enter_critical() -> sq_addlast(a) // double add, wrong -> leave_critical() Also, this happens in mulit-threads in one CPU. Fix: work_cancel() should in critical section. Signed-off-by: ligd <liguiding1@xiaomi.com> |
||
---|---|---|
.. | ||
clock | ||
environ | ||
group | ||
init | ||
irq | ||
module | ||
mqueue | ||
paging | ||
pthread | ||
sched | ||
semaphore | ||
signal | ||
task | ||
timer | ||
tls | ||
wdog | ||
wqueue | ||
Kconfig | ||
Makefile |