c - 如何使用信号量 API 函数来执行正确的锁定/锁定?
问题描述
我有一些代码使用 C 中的信号量原语(semop、semtimedop)等进行锁定。实现此功能的接口函数称为 lock_table,它以信号量 ID 和编号作为参数。
该代码在尝试锁定有问题的信号量时使用 semtimedop 执行非阻塞调用。当信号量被锁定时,sem (semval) 的值将为 0。即:semtimedop 完成了它的工作。
问题:在我完成需要保护的代码并想要解锁信号量之后,是否应该使用 semctl 函数调用将 semval 重置回 1?我问我在网上找到的示例总是在创建它的 semget 之后将新创建的信号量的 semval 值设置为 1。
解决方案
推荐阅读
- java - spring boot 2.1.6 with zipkin,使用spring boot应用调试项目抛出异常
- php - Laravel AJAX 500 内部错误,没有消息
- woocommerce - 如何找到 Woocommerce“订单支付”页面的路径
- javascript - 如何从 Antd 中的所有页面中检查所有行
- boost - 使用 Sitecore 在 Solr 上提升页面
- javascript - 有条件地返回数据
- python - 从python打印excel文件中的数字格式
- ubuntu - 使用 grafonnet-lib 运行 jsonnet 时没有此类文件或目录错误
- r - 将 rowSums 的结果分配给 R 中的新列
- angular - 获取模板中的 Angular formArrayName 索引值