Chinaunix首页 | 论坛 | 博客
  • 博客访问: 443836
  • 博文数量: 50
  • 博客积分: 2635
  • 博客等级: 少校
  • 技术积分: 760
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-16 14:02
文章分类

全部博文(50)

文章存档

2013年(3)

2012年(18)

2011年(7)

2009年(1)

2008年(21)

我的朋友

分类: LINUX

2012-03-01 11:47:15

linux workqueue

#include
#include
#include

MODULE_LICENSE(“BSD”);

static void workqueue_handler(unsigned long data);
static void workqueue_do(void * data);
DECLARE_WORK(test_workqueue, workqueue_do);
static struct timer_list workqueue_timer;

static void workqueue_handler(unsigned long data)
{
    schedule_work(&test_workqueue);
    mod_timer(&workqueue_timer, jiffies + HZ);
}

static void workqueue_do(void * data)
{
    printk(KERN_ALERT “workqueue is running\n”);
}

static int __init test_init(void)
{
    printk(KERN_ALERT “workqueue init running.\n”);
    init_timer(&workqueue_timer);
    workqueue_timer.function = &workqueue_handler;
    workqueue_timer.data = 0;
    workqueue_timer.expires = jiffies + HZ;
    add_timer(&workqueue_timer);
    return 0;
}

static void __exit test_exit(void)
{
    printk(KERN_ALERT “workqueue exit running.\n” );
    del_timer_sync(&workqueue_timer);
}

module_init(test_init);
module_exit(test_exit);

阅读(1382) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~