码迷,mamicode.com
首页 > Windows程序 > 详细

windows 下使用thread_create相关宏定义

时间:2014-12-24 13:34:16      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

#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相关宏定义

标签:

原文地址:http://my.oschina.net/mjRao/blog/359870

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!