无限循环停止

时间:2014-03-30 20:11:52

标签: c kernel-module

我有一个无限的循环,不知何故它停止了。

代码:

struct task_struct *thread;

static int __ubut thread_init(void)
{
  thread = thread_run(kernel_thread_function, NULL, "my_thread");
  return 0;
}

int kernel_thread_function(void *t)
{
   while(1)
      printk("hello world");

   return 0;
}

static void __exit thread_exit(void)
{
   kthread_stop(thread);
}

输出:

  

你好世界......你好世界

     

*突然停止*

innit.内正确创建线程如果我用计数器运行我的while循环,它将一直运行直到计数器完成,但是如果我运行它while(1)它会很快死掉。我猜内核正在杀死我的循环,但是当我运行命令ps时我的线程保持活动状态,我看到所有进程仍在运行。

我尝试使用msleep_interruptible(2000);像其他帖子那样建议,但它并没有解决我的问题。

那么如何让内核不能阻止我的无限循环呢?是的,它必须永远运行。

0 个答案:

没有答案