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
时间: 2024-10-10 11:22:31

windows 下使用thread_create相关宏定义的相关文章

Windows下ADB使用相关问题

Windows下ADB使用相关问题 适用环境: 在Windows XP,WIN7下均可按本文操作进行:WIN8下没有进行实验,但操作设置大致相同,除了第4步,adb_usb.ini的位置可能有所不同以外,其他各部分可按文中所述进行操作. Windows下正常使用ADB要注意以下问题: 1.      手机端要打开调试模式 在设置中,打开开发人员选项,并将其中的USB调试选项打开 2.     PC端安装设备驱动 各家设备的USB驱动可能有所不同,这里以展讯为例. 安装驱动时要先把设备与PC断开.

vc++ release模式下不存_DEBUG宏定义的解决方案

1 #ifndef 2 #define _DEBUG 0 3 #endif 4 5 #ifdef _DEBUG 6 #define trace(x) printf(x); 7 #else 8 #define trace(x) ; 9 #endif #ifndef #define _DEBUG 0 #endif #ifdef _DEBUG #define trace(x) printf(x); #else #define trace(x) ; #endif vc++ release模式下不存_DE

process调用protothread机制的相关宏定义——用HelloWorld进程诠释

HelloWorld例子 #include "contiki.h" #include <stdio.h> /* For printf() */ /*---------------------------------------------------------------------------*/ PROCESS(hello_world_process, "Hello world process"); AUTOSTART_PROCESSES(&

Windows下ElasticSearch及相关插件的安装

(1)在官网下载ElasticSearch压缩包.这里我下载的是elasticsearch-1.7.1(下载地址:https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.zip). (2)选择电脑上的某个位置进行解压,这里我是放在了D:\elasticsearch-1.7.1. (3)进入bin文件夹.找到elasticsearch.bat文件,双击运行. 在bin的同级文件夹下会生成data和log

Unity3D 多平台_预编译相关宏定义

预编译 原文地址:http://docs.unity3d.com/Documentation/Manual/PlatformDependentCompilation.html 平台定义     UNITY_EDITOR 编辑器调用. UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义. UNITY_DASHBOARD_WIDGET Mac OS Dashboard widget (Mac OS仪表板小部件

Windows下编码转换相关

一.ANSI转换为UTF-16 #include <windows.h> wchar_t* AnsiToUnicodeBegin(const char* str){ char* sz = new char[strlen(str)+1]; strcpy(sz, str); int wLen = MultiByteToWideChar(CP_ACP, 0, sz, -1, NULL, 0); wchar_t* wBuf = new wchar_t[wLen+1]; MultiByteToWideC

Unity 平台相关宏定义

Platform Defines Macros The platform defines that Unity supports for your scripts are:     UNITY_EDITOR Define for calling Unity Editor scripts from your game code. UNITY_STANDALONE_OSX Platform define for compiling/executing code specifically for Ma

Windows下与Java相关的环境变量配置

准备工作 进入网址 Java 进入Java SE 下载Java SE 8u231 jre 下载Java SE 13.0.1 应该匹配你的计算机版本 等待安装,此时下载Eclipse Eclipse 进入界面,下载相应版本. 安装好jre之后,开始设置环境变量 将jdk-13下的bin文件夹路径添加至PATH eg.我的jdk-13安装在C:\Program Files\Java C:\Program Files\Java\jdk-13\bin 将jre下的bin文件夹路径添加至PATH eg.我

Windows下 eclipse的相关操作(三):安装有html自动提示插件aptana插件

在eclipse里点开安装新软件的界面 输入插件的安装地址. http://download.aptana.com/tools/studio/plugin/install/studio next之后出现如下错误提示: Cannot complete the install because one or more required items could not be found. Software being installed: Aptana Studio 2.0.5.1278522500-5