Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216821
  • 博文数量: 32
  • 博客积分: 410
  • 博客等级: 一等列兵
  • 技术积分: 396
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-03 16:58
文章分类

全部博文(32)

文章存档

2013年(17)

2012年(15)

我的朋友

分类: 其他平台

2013-10-16 10:11:54

kthread_run()
{
kthread_create();
wakeup_the_process();
}

kthread_create()
{
struct kthread_create_info create;
 Wakeup(Kthreadd);
wait_for_completion(&create.done);//等待create_kthread()创建结束;
}

Kthreadd()
{
while(1){
    schedule();
    create_kthread();
    }
}

create_kthread()
{
    kernel_thread(kthread,create);
    wait_for_completion(&create->started);等待kthread()运行起来;
    complete(&create->done);//已经创建过程结束;
}

kthread()//这只是个外壳,Frame指的就是这个吧;
{
    complete(&create->started);//kthread完全运行起来了;
    schedule();//等待wakeup;
    if (!kthread_should_stop())
        ret = threadfn(data);

    if (kthread_should_stop()) {
        kthread_stop_info.err = ret;
        complete(&kthread_stop_info.done);
    }
}
阅读(2730) | 评论(0) | 转发(0) |
0

上一篇:root_hub 和中断传输

下一篇:没有了

给主人留下些什么吧!~~