📄 hi_thread.c
字号:
/****************************************************************************** Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd. ****************************************************************************** File Name : hi_thread.c Version : Initial Draft Author : Hisilicon multimedia software group Created : 2005/7/13 Last Modified : Description : Hi Thread Function List : History : 1.Date : 2005/7/13 Author : T41030 Modification: Created file******************************************************************************/#include <sys/time.h>#include <time.h>#include <pthread.h>#include "hi.h"#include "hi_thread.h"#include "hi_message.h"/*** Mutex Port Begin **/INT32 hi_thread_mutex_init(HI_THREAD_MUTEX* pMutex, HI_THREAD_MUTEXATTR* pMutexattr){ return (pthread_mutex_init(pMutex, pMutexattr));}INT32 hi_thread_mutex_lock(HI_THREAD_MUTEX* pMutex){ return (pthread_mutex_lock(pMutex));}INT32 hi_thread_mutex_trylock(HI_THREAD_MUTEX* pMutex){ return (pthread_mutex_trylock(pMutex));}INT32 hi_thread_mutex_unlock(HI_THREAD_MUTEX* pMutex){ return (pthread_mutex_unlock(pMutex));}INT32 hi_thread_mutex_destroy(HI_THREAD_MUTEX* pMutex){ return (pthread_mutex_destroy(pMutex));}INT32 hi_thread_cond_wait(HI_THREAD_COND* pCond, HI_THREAD_MUTEX *pMutex, U32 msecs){ struct timeval now; struct timespec timeout; if (msecs == 0) { return pthread_cond_wait(pCond, pMutex); } else { gettimeofday(&now, NULL); timeout.tv_sec = now.tv_sec; timeout.tv_nsec = ( now.tv_usec + (msecs * 1000 )) * 1000; return pthread_cond_timedwait(pCond, pMutex, &timeout); } }/*** Mutex Port END **/INT32 hi_thread_join(HI_THREAD_S *pThread, void **thread_return){ return (pthread_join(pThread->threadid, thread_return));}INT32 hi_thread_create(HI_THREAD_S *pThread,const pthread_attr_t*__attr, void*__arg){ if (NULL == pThread) { WRITE_LOG_ERROR("No routine to be run for create thread. \n"); return HI_FAILURE; } if (NULL == pThread->pf_run) { WRITE_LOG_ERROR("No routine to be run for create thread. \n"); return HI_FAILURE; } if (0 == pthread_create(&(pThread->threadid), __attr, pThread->pf_run, __arg)) { return HI_SUCCESS; } else { return HI_FAILURE; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -