cmppthread.c

来自「用c/c++实现的一个CMPP API」· C语言 代码 · 共 116 行

C
116
字号
/***************************************************************************  Copyright    : 2001-2002, ASPIRE TECHNOLOGIES (SHENZHEN) LTD.  Program      : cmppthread.c  Description  : 线程函数实现文件  Version      : 1.5+***************************************************************************/#include "os.h"#include "cmppthread.h"/************************************************************************  Function ID:  nAPICreatThread  Description:  创建线程函数  Input Param:    Output Param: API_THREAD_HANDLE* phandle  Return:       int             0     success                               -1     fail*************************************************************************/int nAPICreatThread( API_THREAD_HANDLE* phandle, void* pVThreadName, void *arg){        #if defined(_HPUX_SOURCE) || defined(_LINUX_SOURCE)		int nRet;    /* 创建处理线程 */        nRet = pthread_create(phandle, NULL, pVThreadName, arg);        if (nRet != 0)            return THREAD_FAIL;        else            return THREAD_OK;    #endif    #ifdef WIN32    /* 创建处理线程 */        *phandle = CreateThread(NULL,                     0,                     pVThreadName,                     arg,                     0,                     NULL);        if( *phandle != NULL)            return THREAD_OK;        else            return THREAD_FAIL;    #endif}/************************************************************************  Function ID:  nAPIGetpthreadId  Description:  得到当前线程的ID  Input Param:    Output Param:   Return:       int             线程ID                               *************************************************************************/int nAPIGetpthreadId(){    #if defined(_HPUX_SOURCE) || defined(_LINUX_SOURCE)        return pthread_self();    #endif    #ifdef WIN32        return GetCurrentThreadId();    #endif}/************************************************************************  Function ID:  vAPIJointhread  Description:  等待线程退出  Input Param:    Output Param:   Return:                                                   *************************************************************************/void vAPIJointhread(API_THREAD_HANDLE* phandle){	#if defined(_HPUX_SOURCE) || defined(_LINUX_SOURCE)	//	nAPICancelThread(phandle);   //added by lijian 2003-12-4 修改重新init的等待问题		pthread_join(*phandle, NULL);	#endif	#ifdef WIN32		WaitForSingleObject( *phandle, INFINITE );		CloseHandle(*phandle);	#endif}/************************************************************************  Function ID:  nAPICreatThread  Description:  销毁线程函数  Input Param:  API_THREAD_HANDLE* phandle  Output Param:   Return:       int             0     success                               -1     fail*************************************************************************/int nAPICancelThread( API_THREAD_HANDLE* phandle){    #if defined(_HPUX_SOURCE) || defined(_LINUX_SOURCE)	int nRet;        nRet = pthread_cancel(*phandle);        if (nRet != 0)            return THREAD_FAIL;        else            return THREAD_OK;    #endif    #ifdef WIN32    /* 创建处理线程 */         if( TerminateThread(*phandle, 0) != 0 )            return THREAD_OK;        else            return THREAD_FAIL;    #endif}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?