diff options
Diffstat (limited to 'source/module/monitor_timer.c')
| -rw-r--r-- | source/module/monitor_timer.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/source/module/monitor_timer.c b/source/module/monitor_timer.c index f23e330..705f97e 100644 --- a/source/module/monitor_timer.c +++ b/source/module/monitor_timer.c @@ -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); + } }
\ No newline at end of file |
