⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 localmutex.h

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 H
字号:
#ifndef LOCALMUTEX_H#define LOCALMUTEX_H#include <semaphore.h>#include <errno.h>//******************************************************************************//本类采用Posix信号灯机制,内存信号灯class CLocalMutex {    public:    CLocalMutex(int isLocal=0,unsigned int value=1)    {	Open_Semaphore(isLocal,value);    }        CLocalMutex(bool isManul)    {	if(!isManul)	{	    Open_Semaphore();	}    }        ~CLocalMutex()    {	Destroy_Semaphore();    }        public:    sem_t	m_sem;    public:    bool Open_Semaphore(int isLocal=0,unsigned int value=0)    {	int rc=sem_init(&m_sem,isLocal,value);	if(rc<0) return false;	return true;    }        bool Destroy_Semaphore()    {	int rc=sem_destroy(&m_sem);	return (!(rc<0));    }        bool lock()    {	sem_wait(&m_sem);	return true;    }        bool trylock()    {	int rc=sem_trywait(&m_sem);	return !(rc==EAGAIN);    }        bool unlock()    {	sem_post(&m_sem);	return true;    }};class CLMutexLocker {    public:    CLMutexLocker(CLocalMutex *LocalMutex,bool bWait=false)    {	m_LocalMutex=LocalMutex;	if(!bWait)	    m_LocalMutex->trylock();	else	    m_LocalMutex->lock();    }        ~CLMutexLocker()    {	m_LocalMutex->unlock();    }        public:    CLocalMutex* GetMutex()    {	return m_LocalMutex;    }        private:    CLocalMutex* m_LocalMutex;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -