00001 00010 #ifndef DKUTIL_C_THREAD_H 00011 #define DKUTIL_C_THREAD_H 00012 00013 #include "dkcThreadLock.h" 00014 00015 #ifdef WIN32 00016 00017 typedef struct dkc_Thread{ 00018 HANDLE handle; 00019 DWORD id; 00020 }DKC_THREAD; 00021 00022 enum edkcThreadPriority{ 00023 edkcThreadPriorityLowest = 0, 00024 edkcThreadPriorityBelowNormal , 00025 edkcThreadPriorityNormal , 00026 edkcThreadPriorityAboveNormal , 00027 edkcThreadPriorityHighest , 00028 edkcThreadPriorityIdle, 00029 edkcThreadPriorityTimeCritical, 00030 }; 00031 00032 enum edkcProcessPriority{ 00033 edkcProcessPriorityHigh = 0, 00034 edkcProcessPriorityIdle , 00035 edkcProcessPriorityNormal , 00036 edkcProcessPriorityRealTime , 00037 }; 00038 #else 00039 00040 #endif 00041 00042 DKC_EXTERN DKC_THREAD *WINAPI dkcAllocThread(); 00043 00044 DKC_EXTERN int WINAPI dkcFreeThread(DKC_THREAD **p); 00045 00046 DKC_EXTERN int WINAPI dkcGetCurrentThread(DKC_THREAD *out); 00047 00048 DKC_EXTERN int WINAPI dkcGetThreadPriority(DKC_THREAD *p,int *priority); 00049 DKC_EXTERN int WINAPI dkcSetThreadPriority(DKC_THREAD *p,int priority); 00050 00051 DKC_EXTERN int WINAPI dkcGetCurrentThreadPriority(int *priority); 00052 DKC_EXTERN int WINAPI dkcSetCurrentThreadPriority(int priority); 00053 00054 00055 00056 DKC_EXTERN int WINAPI dkcGetProcessPriority(DKC_THREAD *p,int *priority); 00057 DKC_EXTERN int WINAPI dkcSetProcessPriority(DKC_THREAD *p,int priority); 00058 00059 DKC_EXTERN int WINAPI dkcGetCurrentProcessPriority(int *priority); 00060 DKC_EXTERN int WINAPI dkcSetCurrentProcessPriority(int priority); 00061 00062 #endif //end of include once