メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcThreadLock.h

説明を見る。
00001 
00013 #ifndef DKUTIL_C_THREAD_LOCK_H
00014 #define DKUTIL_C_THREAD_LOCK_H
00015 
00016 #include "dkcOSIndependent.h"
00017 
00018 #ifdef WIN32
00019 typedef DWORD dkctThreadID;
00020 #define dkcdINVALID_THREAD_ID ((dkctThreadID)(-1))
00021 
00022 typedef struct dkc_ThreadLock{
00023     CRITICAL_SECTION m_csCriticalSection;
00025     dkctThreadID    mLockedThread ;
00027     int                 mLockCount ;
00028 }DKC_THREAD_LOCK;
00029 
00030 #else
00031 
00032 typedef void *dkctThreadID;
00033 #define dkcdINVALID_THREAD_ID ((dkctThreadID)(NULL))
00034 
00035 typedef struct dkc_ThreadLock{
00036     pthread_mutex_t mMutex;
00038     dkctThreadID                mLockedThread ;
00040     int                 mLockCount ;
00041 }DKC_THREAD_LOCK;
00042 
00043 
00044 #endif
00045 
00046 DKC_INLINE dkctThreadID dkcGetThreadID(){
00047 #ifdef WIN32
00048     return GetCurrentThreadId();
00049 #else
00050     return pthread_self();
00051 #endif
00052 }
00053 
00054 DKC_EXTERN DKC_THREAD_LOCK * WINAPI dkcAllocThreadLock();
00055 
00056 DKC_EXTERN int WINAPI dkcFreeThreadLock(DKC_THREAD_LOCK **);
00057 
00058 DKC_EXTERN void WINAPI dkcThreadLock_Lock(DKC_THREAD_LOCK *);
00059 
00060 
00061 DKC_EXTERN void WINAPI dkcThreadLock_Unlock(DKC_THREAD_LOCK *);
00062 
00063 
00064 //DKC_EXTERN BOOL WINAPI dkcThreadLockIsInited(DKC_THREAD_LOCK *);
00065 
00066 DKC_EXTERN BOOL WINAPI dkcThreadLockIsLockedByThisThread(DKC_THREAD_LOCK *);
00067 #define dkcThreadLockIsLockedByCurrentThread(p) dkcThreadLockIsLockedByThisThread(p)
00068 /*
00069 DKC_EXTERN void WINAPI dkcThreadLockInit();
00070 
00071 DKC_EXTERN void WINAPI dkcThreadLock_Lock();
00072 
00073 DKC_EXTERN void WINAPI dkcThreadLock_Unlock();
00074 
00075 DKC_EXTERN void WINAPI dkcThreadLockEnd();
00076 
00077 DKC_EXTERN BOOL WINAPI dkcThreadLockIsInited();
00078 
00079 DKC_EXTERN BOOL WINAPI dkcThreadLockIsLockedByThisThread();
00080 */
00081 #if !defined( DKUTIL_C_THREAD_LOCK_C ) &&  defined(USE_DKC_INDEPENDENT_INCLUDE)
00082 #   include "dkcThreadLock.c"
00083 #endif
00084 
00085 #endif //end of include once

dkutil_cに対してMon Jan 16 00:39:54 2006に生成されました。  doxygen 1.4.4