#include "Mutex.h"#ifndef _WIN32//#if 1#include <pthread.h>struct OS_Mutex_Priv{pthread_mutex_t hMutex;};OS_Mutex::OS_Mutex():m_Priv(NULL){Init();}OS_Mutex::~OS_Mutex(){if(m_Priv){OS_Mutex_Priv* priv = (OS_Mutex_Priv*) m_Priv;pthread_mutex_destroy(&priv->hMutex);delete priv;}}int OS_Mutex::Init(){OS_Mutex_Priv* priv = new OS_Mutex_Priv;if(!priv) return -1;m_Priv = priv;// mutexif(pthread_mutex_init(&priv->hMutex, NULL) < 0){delete priv;m_Priv = NULL;return -1;}return 0;}int OS_Mutex::Lock(){OS_Mutex_Priv* priv = (OS_Mutex_Priv*) m_Priv;if(!priv) return -1;if( pthread_mutex_lock(&priv->hMutex) < 0){return -1;}return 0;}int OS_Mutex::TryLock(){OS_Mutex_Priv* priv = (OS_Mutex_Priv*) m_Priv;if(!priv) return -1;if(pthread_mutex_trylock(&priv->hMutex) < 0){return -1;}return 0;}void OS_Mutex::Unlock(){OS_Mutex_Priv* priv = (OS_Mutex_Priv*) m_Priv;if(!priv ) return;pthread_mutex_unlock(&priv->hMutex);}#endif // ! _WIN32
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。