workqueue 用法实例

struct my_work_stuct{
    int test;
    struct work_stuct save;
};

struct my_work_stuct test_work; 
struct workqueue_struct *test_workqueue;

void do_save(struct work_struct *p_work)
{
    struct my_work_struct *p_test_work = container_of(p_work, struct my_work_stuct, save);
    printk("%d\n",p_test_work->test);
}
  
void test_init()
{
    test_workqueue = create_workqueue("test_workqueue");
    if (!test_workqueue)
        panic("Failed to create test_workqueue\n");

    INIT_WORK(&(test_work.save), do_save);

    queue_work(test_workqueue, &(test_work.save));
}

void test_destory(void)
{
    if(test_workqueue)
        destroy_workqueue(test_workqueue);
}



拿来就能用 啥也不说了 适合linux4.0 version

你可能感兴趣的:(workqueue 用法实例)