try to fix workqueue bug

This commit is contained in:
John Doe
2023-12-11 07:48:30 +00:00
parent 40b3cb2a60
commit 894a10c486
3 changed files with 31 additions and 5 deletions

View File

@@ -152,7 +152,7 @@ void start_all_hrTimer(void) {
printk(KERN_INFO "HrTimer start,module keep %d hrtimer for now\n", kernel_wtimer_num);
}
/// @brief cancel hrTimer
/// @brief cancel hrTimer and stop all work
/// @param
void cancel_all_hrTimer(void) {
int i = 0;
@@ -161,6 +161,25 @@ void cancel_all_hrTimer(void) {
timer = &(kernel_wtimer_list[i]);
TIMER_CANCEL(timer);
}
printk(KERN_INFO "HrTimer cancel,module keep %d hrtimer for now\n", kernel_wtimer_num);
}
void cancel_all_work(void) {
int i = 0;
kernel_watch_timer *timer = NULL;
for (i = 0; i < kernel_wtimer_num; i++) {
timer = &(kernel_wtimer_list[i]);
cancel_work_sync(&timer->wk);
}
}
void cancel_destory_all_work(void) {
int i = 0;
kernel_watch_timer *timer = NULL;
for (i = 0; i < kernel_wtimer_num; i++) {
timer = &(kernel_wtimer_list[i]);
cancel_work_sync(&timer->wk);
destroy_work_on_stack(&timer->wk);
}
}