umc_automatic_mutex.h
来自「这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数」· C头文件 代码 · 共 97 行
H
97 行
/*//// 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 + =
减小字号Ctrl + -
显示快捷键?