首页 > 代码库 > windows 下使用thread_create相关宏定义
windows 下使用thread_create相关宏定义
#ifdef _WIN32 #include <windows.h> extern "C" { extern int getopt(int, char * const *, const char *); extern char *optarg; } #define PATHD ‘\\‘ typedef HANDLE thread_t; #define thread_create(thrp, attr, func, arg) (((*(thrp) = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)(func), (arg), 0, NULL)) == NULL) ? -1 : 0) #define thread_join(thr, statusp) ((WaitForSingleObject((thr), INFINITE) == WAIT_OBJECT_0) && ((statusp == NULL) ? 0 : (GetExitCodeThread((thr), (LPDWORD)(statusp)) ? 0 : -1))) typedef HANDLE mutex_t; #define mutex_init(m, attr) (((*(m) = CreateMutex(NULL, FALSE, NULL)) != NULL) ? 0 : -1) #define mutex_lock(m) ((WaitForSingleObject(*(m), INFINITE) == WAIT_OBJECT_0) ? 0 : -1) #define mutex_unlock(m) (ReleaseMutex(*(m)) ? 0 : -1) #else #include <pthread.h> #include <unistd.h> #define PATHD ‘/‘ typedef pthread_t thread_t; #define thread_create(thrp, attr, func, arg) pthread_create((thrp), (attr), (func), (arg)) #define thread_join(thr, statusp) pthread_join((thr), (statusp)) typedef pthread_mutex_t mutex_t; #define mutex_init(m, attr) pthread_mutex_init((m), (attr)) #define mutex_lock(m) pthread_mutex_lock(m) #define mutex_unlock(m) pthread_mutex_unlock(m) #endif
windows 下使用thread_create相关宏定义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。