浏览代码

Add flush_workqueue before destroying workqueue

To ensure no work is left running when the module is removed, call
flush_workqueue() before destroy_workqueue() in the module exit path.
According to the kernel documentation, destroy_workqueue() expects
that all work items have already completed:

    "Safely destroy a workqueue. All work currently pending will be
    done first."

This change adds an explicit call to flush_workqueue() in the module
exit function to ensure no work handler remains in progress or pending
at the time of destruction.
Guan-Chun.Wu 4 天之前
父节点
当前提交
b30af6bf36
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      examples/sched.c

+ 1 - 0
examples/sched.c

@@ -27,6 +27,7 @@ static int __init sched_init(void)
 
 static void __exit sched_exit(void)
 {
+    flush_workqueue(queue);
     destroy_workqueue(queue);
 }