当前位置: 首页 > ops >正文

怎么开发一个网络协议模块(C语言框架)之(四) 信号量初始化

// 原始代码
/* gVrrpInstance.sem = OsixCreateBSem(OSIX_SEM_Q_PRIORITY, OSIX_SEM_FULL); */
gVrrpInstance.sem = OsixCreateMSem(OSIX_SEM_Q_FIFO | OSIX_SEM_DELETE_SAFE);
if (gVrrpInstance.sem == NULL)
{printf("[VRRP]:vrrp init error, failed to create vrrp global sem.\r\n");goto ERROR_RETURN;
}

🚦 一、信号量作用

信号量用于:

  • 控制多线程/中断对共享资源的访问

  • VRRP 模块可能有多个线程:

    • 定时器线程

    • socket 接收线程

    • CLI 或配置下发线程

  • 全局变量(如 gVrrpInstance.operUsedTblavl树)是共享资源,需加锁防止竞态条件。


二、OsixCreateMSem 是什么?

这是平台层 OS 适配接口的

http://www.xdnf.cn/news/8506.html

相关文章:

  • 【Java Web】3.SpringBootWeb请求响应
  • Spring 框架的JDBC 模板技术
  • 使用Python控制Arduino——入门与实战
  • Axure酒店管理系统原型
  • 【如何做好一份技术文档?】用Javadoc与PlantUML构建高质量技术文档(API文档自动化部署)
  • 正则表达式进阶(四):性能优化与调试技巧
  • STM32中的IIC协议和OLED显示屏
  • day26CSS-Sass、Stylus、Less
  • 使用Spring Boot和Spring Security结合JWT实现安全的RESTful API
  • DOM事件的注册和移除
  • 算法学习——从零实现循环神经网络
  • JavaScript从入门到精通(一)
  • JVM学习(四)--对象内存布局
  • AMD硬件笔试面试题型解析
  • 从 0 到 1!Java 并发编程基础全解析,零基础入门必看!
  • 【音频】drc 限幅器、多带限幅器、压缩器、多带压缩器
  • 自制操作系统day9内存管理(cache、位图、列表管理、内存的释放)
  • STM32 CubeMX时钟配置PWM信号输出
  • 生成模型——PixelRNN与PixelCNN
  • 生成模型——扩散模型(Diffusion Model)
  • 阿里云服务器 篇十五:自动签到服务(基于Cookie,脚本和数据分离)
  • 论文学习记录之《DiffusionVel》
  • 文档结构化专家:数字化转型的核心力量
  • Java[IDEA]里的debug
  • 对称加密中GCM和CBC俩种加密模式的区别
  • 八股碎碎念02——Synchronized
  • 氢气传感器维护常见问题及解决方法
  • RK常见系统属性设置/获取命令使用
  • 文章记单词 | 第102篇(六级)
  • STM32 SPI通信(软件)