免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1325 | 回复: 0
打印 上一主题 下一主题

有关于schedule和wait_event函数执行问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-13 11:53 |只看该作者 |倒序浏览
本帖最后由 honest581 于 2010-04-13 14:47 编辑

#define __wait_event(wq, condition)                                         \
do {                                                                        \
        DEFINE_WAIT(__wait);                                                \
                                                                        \
        for (;;) {                                                        \
                prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE);        \
                if (condition)                                                \
                        break;                                                \
                schedule();                                                \
        }                                                                \
        finish_wait(&wq, &__wait);                                        \
} while (0)
这是把当前进程加入等待队列等待唤醒方法,我有个问题,就是当执行完prepare_to_wait 和schedule便进入睡眠,那么当下一次被唤醒后是否还会回到schedule处执行?
如果是这样 那么在for循环里面还会再一次执行prepare_to_wait 才可以退出,这样不是把一个进程加入两次等待队列吗?请高手解答我的疑问,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP