博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
init_MUTEX 与 sema_init 函数【转】
阅读量:6246 次
发布时间:2019-06-22

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

转自:

在编译

    2.6.25及以后的linux内核版本废除了init_MUTEX函数

    新版本使用sema_init函数

平台:X86 32位

内核:2.6.24
定义
: 

点击(此处)折叠或打开

  1. static inline void init_MUTEX (struct semaphore *sem) 
  2.         sema_init(sem, 1); 
  3. }

说明:Init_MUTEX()函数初始化信号量为互斥量。 互斥量为信号量的特例,它可以防止数据被两个不同系统调用读写。 

sema_init (sem, 1) 定义为:

点击(此处)折叠或打开

  1. static inline void sema_init (struct semaphore *sem, int val)
  2. {
  3. /*
  4. * *sem = (struct semaphore)__SEMAPHORE_INITIALIZER((*sem),val);
  5. *
  6. * i'd rather use the more flexible initialization above, but sadly
  7. * GCC 2.7.2.3 emits a bogus warning. EGCS doesn't. Oh well.
  8. */
  9.     atomic_set(&sem->count, val);
  10.     sem->sleepers = 0;
  11.     init_waitqueue_head(&sem->wait);
  12. }

sleepers : 指定了允许进入等待进入临界区的进程数,这里初始化为 0 。

init_waitqueue_head() : 初始化一个等待队列头。

这样不难得出,废除 init_MUTEX 后,将原来使用 init_MUTEX(sem)的地方统统替换为sema_init(sem, 1); 即可

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/5710848.html,如需转载请自行联系原作者

你可能感兴趣的文章
SQL Server转sqlite数据库
查看>>
python print和strip
查看>>
2016学年第一学期软件工程第二次作业
查看>>
Powershell检查邮件队列设置阈值,通过html形式进行邮件告警
查看>>
痞子衡嵌入式:恩智浦i.MXRT系列微控制器量产神器RT-Flash用户指南
查看>>
PHP学习笔记1
查看>>
MySQL学习1
查看>>
14.linux下复制粘贴
查看>>
网络编程
查看>>
List数据转Map数据并进行分组排序
查看>>
word - 如何让 图片任意移动
查看>>
安装Oracle
查看>>
LoadRunner基础知识
查看>>
How to helloworld on Xcode
查看>>
PHP常见设计模式简单实现
查看>>
java课堂相关问题
查看>>
图片溢出div问题的最终解决方案
查看>>
区分Web Server和应用服务器
查看>>
计算字符串长度,加车头
查看>>
$ sudo python -m pip install pylint 出错解决方法
查看>>