linux共享内存内加锁导致死锁

背景: 使用共享内存共享一段结构体数据,结构体中包含锁变量,对内部数据操作时,需要加锁。通常 操作中没有问题,但在共享内存数据进行高频率加锁时出现死锁。
使用共享内存共享如下结构体数据
typedef struct
{
OSMutex muOnProcess;
}MEM_MANAGER_MEM_CTRL;

在对数据进行操作时,对共享数据进行锁操作
LockMutex(&pCtrl->muOnProcess);
UnlockMutex(&pCtrl->muOnProcess);

结果:在多进程操作时,某个进程死锁,永远获取不到锁
解决:使用有名信号量,每个进程均通过KEY获取信号量,在内存中进行信号量操作
#include

#include "os-sem.h"

/**************************************************

linux共享内存内加锁导致死锁最先出现在Python成神之路

版权声明:
作者:Zad
链接:https://www.techfm.club/p/13984.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>