分类: LINUX
2012-09-25 21:42:39
一个对msleep()的调用是不可中断的; 能确保进程睡眠至少给定的毫秒数
void msleep(unsigned int msecs){
unsigned long timeout = msecs_to_jiffies(msecs) + 1;
while (timeout)
timeout = schedule_timeout_uninterruptible(timeout);
}
msleep()是让当前进程休眠,让出CPU给其它进程使用,等到时间到了之后再唤醒。由此看来,msleep()不能用于中断上下文中。
mdelay()是一个让CPU空转,一直等待到给定的时间后才退出。