workqueue fix init

This commit is contained in:
zy
2023-11-27 01:18:15 -05:00
parent 3f724a135b
commit 28c67943e3
4 changed files with 50 additions and 27 deletions

View File

@@ -27,12 +27,18 @@ unsigned char del_all_kwarg_by_pid(pid_t pid) {
timer = &(kernel_wtimer_list[i]);
if (TIMER_NO_KWARG(timer)) // no available kwarg
{
// cancel and destroy timer.work
// make sure empty timer has no work active
cancel_work_sync(&timer->wk);
destroy_work_on_stack(&timer->wk);
if (i != kernel_wtimer_num - 1) {
memcpy(timer, &kernel_wtimer_list[kernel_wtimer_num - 1],
sizeof(kernel_watch_timer));
}
kernel_wtimer_num--;
i--;
}
}
return 0;