博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wait _event_interruptible()函数分析
阅读量:6237 次
发布时间:2019-06-22

本文共 1427 字,大约阅读时间需要 4 分钟。

wait _event_interruptible()函数分析

 
(2011-11-03 11:32:51)
标签: 

分类: 
Linux-2.6提供如下关于等待队列的操作:
    (1) 定义"等待队列头", 

 

        wait_queue_head_t my_queue;
defined in linux/wait.h
 struct  {

  ;  struct  task_list;  };  typedef struct  ;
        
(2) 初始化"等待队列头"
        init_waitqueue_head(&my_queue);
defined in linux/wait.c header file
   void  (  *q)
 { (&q->); (&q->task_list); }
   
        定义和初始化的快捷方式:
        DECLARE_WAIT_QUEUE_HEAD(my_queue);   
linux/wait.h
 #define () { \ . = (.), \ .task_list = { &().task_list, &().task_list } }
 #define () \   = ()
    (3) 定义等待队列
        DECLARE_WAITQUEUE(name, tsk);
        定义并初始化一个名为name的等待队列(wait_queue_t);
linux/wait.h
 struct  { unsigned int ; #define  0x01 void *;  ; struct  task_list; }; typedef struct  ;
 #define (, tsk) { \ . = tsk, \ . = , \ .task_list = { ,  } }  #define (, tsk) \   = (, tsk)2 specific analysiswait_event_interruptible()。该函数修改task的状态为TASK_INTERRUPTIBLE,意味着改进程将不会继续运行直到被唤醒,然后被添加到等待队列wq中。在wait_event_interruptible()中首先判断condition是不是已经满足,如果是则直接返回0,否则调用__wait_event_interruptible(),并用__ret来存放返回值---------------------------------------------------------------#define wait_event_interruptible(wq, condition)          \({                                                       \    int __ret = 0;                                       \    if (!(condition))                                    \        (wq, condition, __ret);\    __ret;                                       

转载于:https://www.cnblogs.com/yuzaipiaofei/archive/2012/03/22/4124228.html

你可能感兴趣的文章
手把手玩转win8开发系列课程(26)
查看>>
森林、树与二叉树相互转换
查看>>
Spark随谈(一)—— 总体架构
查看>>
算法系列15天速成——第十四天 图【上】
查看>>
django 快速实现登录
查看>>
导入数据时遇见ORA-00054
查看>>
模拟终端打印效果特效
查看>>
forfiles命令批量删除N天前文件
查看>>
顺序队列
查看>>
(NO.00005)iOS实现炸弹人游戏(三):从主场景类谈起
查看>>
git/github初级运用自如
查看>>
《Netty 权威指南》—— NIO类库简介
查看>>
Codeforces 452 A. Eevee
查看>>
小鱼儿CTO赵兴国:基于阿里云的互联网+视频会议系统实践
查看>>
基于smack的即时聊天系统之文件传输功能实现
查看>>
Boa服务器的移植
查看>>
Linux网络编程入门
查看>>
help
查看>>
我的友情链接
查看>>
GIT服务器配置及同步站点目录
查看>>