1 /*******************************************************************************
5 * Created : 2009-10-8 11:08:38
7 ******************************************************************************/
9 #ifndef __HLH_MUTEX_INC_20091008_110838_HENRY__
10 #define __HLH_MUTEX_INC_20091008_110838_HENRY__
13 /*******************************************************************************
14 * Desc : Includes Files
15 ******************************************************************************/
19 /*******************************************************************************
20 * Desc : Macro Definations
21 ******************************************************************************/
22 #define HLH_MUTEX_ERR_FAILED (-1)
23 #define HLH_MUTEX_ERR_ALREADY_INITED (-2)
24 #define HLH_MUTEX_ERR_NOT_INIT (-3)
25 #define HLH_MUTEX_ERR_CANT_INIT (-4)
29 /*******************************************************************************
30 * Desc : Type Definations
31 ******************************************************************************/
34 /*******************************************************************************
35 * Desc : Global Variables
36 ******************************************************************************/
39 /*******************************************************************************
41 ******************************************************************************/
45 friend class HLH_Cond
;
48 /******************************************************************************
49 * Desc : Constructor / Deconstructor of HLH_Mutex
50 ******************************************************************************/
52 // Constructor of HLH_Mutex
55 // Deconstructor of HLH_Mutex
59 /******************************************************************************
61 ******************************************************************************/
75 // Whether this mutex initialized
76 bool IsInited () { return m_bInited
; }
78 bool IsLocked () { return m_bLocked
; }
81 /******************************************************************************
83 ******************************************************************************/
84 // Whether this mutex created
87 // Whether this mutex locked;
90 // Internal mutex of HLH_Mutex
91 pthread_mutex_t m_mMutex
;
97 /******************************************************************************
98 * Desc : Auto initialized HLH_Mutex
99 ******************************************************************************/
100 class HLH_AutoMutex
: public HLH_Mutex
103 HLH_AutoMutex () { HLH_Mutex::Init (); }
112 #endif /* __HLH_MUTEX_INC_20091008_110838_HENRY__ */