📄 umc_automatic_mutex.h
字号:
/*//// INTEL CORPORATION PROPRIETARY INFORMATION// This software is supplied under the terms of a license agreement or// nondisclosure agreement with Intel Corporation and may not be copied// or disclosed except in accordance with the terms of that agreement.// Copyright (c) 2003-2005 Intel Corporation. All Rights Reserved.////*/#ifndef __UMC_AUTOMATIC_MUTEX_H#define __UMC_AUTOMATIC_MUTEX_H#include "vm_mutex.h"namespace UMC{class AutomaticMutex{public: // Constructor AutomaticMutex(vm_mutex &mutex); // Destructor ~AutomaticMutex(void); // lock mutex again void Lock(void); // Unlock mutex void Unlock(void);protected: vm_mutex *m_lpMutex; // (vm_mutex *) pointer to using mutex bool m_bLocked; // (bool) mutex is own locked};inlineAutomaticMutex::AutomaticMutex(vm_mutex &mutex){ if (vm_mutex_is_valid(&mutex)) { m_lpMutex = &mutex; // lock mutex vm_mutex_lock(m_lpMutex); m_bLocked = true; } else { m_lpMutex = NULL; m_bLocked = false; }} // AutomaticMutex::AutomaticMutex(vm_mutex &mutex)inlineAutomaticMutex::~AutomaticMutex(void){ Unlock();} // AutomaticMutex::~AutomaticMutex(void)inlinevoid AutomaticMutex::Lock(void){ if (m_lpMutex) { if ((vm_mutex_is_valid(m_lpMutex)) && (false == m_bLocked)) { vm_mutex_lock(m_lpMutex); m_bLocked = true; } }} // void AutomaticMutex::Unlock(void)inlinevoid AutomaticMutex::Unlock(void){ if (m_lpMutex) { if ((vm_mutex_is_valid(m_lpMutex)) && (m_bLocked)) { vm_mutex_unlock(m_lpMutex); m_bLocked = false; } }} // void AutomaticMutex::Unlock(void)} // end namespace UMC#endif // __UMC_AUTOMATIC_MUTEX_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -