Skip to content

Commit b30af6b

Browse files
committed
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.
1 parent 2588783 commit b30af6b

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

examples/sched.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ static int __init sched_init(void)
2727

2828
static void __exit sched_exit(void)
2929
{
30+
flush_workqueue(queue);
3031
destroy_workqueue(queue);
3132
}
3233

0 commit comments

Comments
 (0)