自定义workqueue
头文件
#include <linux/param.h>
#include <linux/workqueue.h>
1.定义work_func(my_test_work_func)
static void my_test_work_func(struct work_struct *work)
{
work_num++;
printk("Work: %d \n",work_num);
queue_delayed_work(queue,&mWork,HZ);
}
2.定义work_struct 变量
static struct delayed_work mWork;
3. 绑定work_struct和work_func
INIT_DELAYED_WORK(&mWork,my_test_work_func);
4. 定义workqueue_struct 变量
static struct workqueue_struct *queue = NULL;
5. 创建自己的work_queue
queue = create_singlethread_workqueue("my_work_queue");
if(!queue)
return -1;
else
printk("create workqueue success \n");
6.调度workqueue中的work
queue_delayed_work(queue,&mWork,HZ);