From 28c67943e33e958ecef18cc7b6ff445a25fcca59 Mon Sep 17 00:00:00 2001 From: zy Date: Mon, 27 Nov 2023 01:18:15 -0500 Subject: workqueue fix init --- source/module/monitor_timer.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/module/monitor_timer.c') diff --git a/source/module/monitor_timer.c b/source/module/monitor_timer.c index dbc57ea..ac7d5e3 100644 --- a/source/module/monitor_timer.c +++ b/source/module/monitor_timer.c @@ -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; -- cgit v1.2.3