00001
00011 #ifndef DKUTIL_C_THREAD_LOCK_H
00012 #define DKUTIL_C_THREAD_LOCK_H
00013
00014 #include "dkcOSIndependent.h"
00015
00016 #ifdef WIN32
00017
00018 typedef struct dkc_ThreadLock{
00019 CRITICAL_SECTION m_csCriticalSection;
00021 DWORD m_dwLockedThread ;
00023 int mLockCount ;
00024 }DKC_THREAD_LOCK;
00025
00026 #endif
00027
00028 DKC_EXTERN DKC_THREAD_LOCK * WINAPI dkcAllocThreadLock();
00029
00030 DKC_EXTERN int WINAPI dkcFreeThreadLock(DKC_THREAD_LOCK **);
00031
00032 DKC_EXTERN void WINAPI dkcThreadLock_Lock(DKC_THREAD_LOCK *);
00033
00034
00035 DKC_EXTERN void WINAPI dkcThreadLock_Unlock(DKC_THREAD_LOCK *);
00036
00037
00038
00039
00040 DKC_EXTERN BOOL WINAPI dkcThreadLockIsLockedByThisThread(DKC_THREAD_LOCK *);
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 #if !defined( DKUTIL_C_THREAD_LOCK_C ) && defined(USE_DKC_INDEPENDENT_INCLUDE)
00056 # include "dkcThreadLock.c"
00057 #endif
00058
00059 #endif //end of include once