cross-platform define update
This commit is contained in:
parent
2d8da351ba
commit
1bfb503e13
@ -50,7 +50,7 @@ inline T *hgl_aligned_malloc(size_t n)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define OS_EXTERNAL_H <dlfcn.h>
|
#define OS_EXTERNAL_H <dlfcn.h>
|
||||||
typedef void * ExternalModulePointer;
|
using ExternalModulePointer =void *;
|
||||||
#define pi_get dlsym
|
#define pi_get dlsym
|
||||||
#define pi_close dlclose
|
#define pi_close dlclose
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ using os_char =wchar_t;
|
|||||||
#endif//
|
#endif//
|
||||||
|
|
||||||
#define OS_EXTERNAL_H <winbase.h>
|
#define OS_EXTERNAL_H <winbase.h>
|
||||||
typedef HMODULE ExternalModulePointer;
|
using ExternalModulePointer =HMODULE;
|
||||||
#define pi_get GetProcAddress
|
#define pi_get GetProcAddress
|
||||||
#define pi_close FreeLibrary
|
#define pi_close FreeLibrary
|
||||||
|
|
||||||
@ -74,6 +74,10 @@ typedef HMODULE ExternalModulePointer;
|
|||||||
|
|
||||||
using hgl_thread_mutex =CRITICAL_SECTION;
|
using hgl_thread_mutex =CRITICAL_SECTION;
|
||||||
using thread_ptr =HANDLE;
|
using thread_ptr =HANDLE;
|
||||||
|
using rwlock_ptr =SRWLOCK;
|
||||||
|
using semaphore_ptr =HANDLE;
|
||||||
|
using conv_var_ptr =CONDITION_VARIABLE;
|
||||||
|
|
||||||
#define THREAD_FUNC DWORD WINAPI
|
#define THREAD_FUNC DWORD WINAPI
|
||||||
#define HGL_THREAD_DETACH_SELF
|
#define HGL_THREAD_DETACH_SELF
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -3,13 +3,26 @@
|
|||||||
|
|
||||||
#include<pthread.h>
|
#include<pthread.h>
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#include<dispatch/dispatch.h>
|
||||||
|
#endif//__APPLE__
|
||||||
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
using hgl_thread_mutex =pthread_mutex_t;
|
using hgl_thread_mutex =pthread_mutex_t;
|
||||||
|
|
||||||
using thread_ptr =pthread_t;
|
using thread_ptr =pthread_t;
|
||||||
using THREAD_FUNC =void *;
|
using rwlock_ptr =pthread_rwlock_t *;
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
using semaphore_ptr =dispatch_semaphore_t *;
|
||||||
|
#else
|
||||||
|
using semaphore_ptr =sem_t *;
|
||||||
|
#endif//
|
||||||
|
|
||||||
|
using cond_var_ptr =pthread_cond_t *;
|
||||||
|
|
||||||
|
#define THREAD_FUNC void *
|
||||||
#define HGL_THREAD_DETACH_SELF pthread_detach(pthread_self());
|
#define HGL_THREAD_DETACH_SELF pthread_detach(pthread_self());
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
#endif//HGL_POSIX_THREAD_INCLUDE
|
#endif//HGL_POSIX_THREAD_INCLUDE
|
||||||
|
@ -12,7 +12,7 @@ namespace hgl
|
|||||||
*/
|
*/
|
||||||
class CondVar
|
class CondVar
|
||||||
{
|
{
|
||||||
void *cond_var;
|
conv_var_ptr *cond_var;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -9,14 +9,14 @@ namespace hgl
|
|||||||
*/
|
*/
|
||||||
class RWLock ///读写锁/共享锁
|
class RWLock ///读写锁/共享锁
|
||||||
{
|
{
|
||||||
void *lock;
|
rwlock_ptr *lock;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RWLock();
|
RWLock();
|
||||||
virtual ~RWLock();
|
virtual ~RWLock();
|
||||||
|
|
||||||
void *GetRWLock(){ return lock; } ///<返回操作系级锁
|
rwlock_ptr *GetRWLock(){ return lock; } ///<返回操作系级锁
|
||||||
|
|
||||||
bool TryReadLock(); ///<尝试读(共享访问)锁定
|
bool TryReadLock(); ///<尝试读(共享访问)锁定
|
||||||
bool ReadLock(); ///<读(共享访问)锁定
|
bool ReadLock(); ///<读(共享访问)锁定
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
#ifndef HGL_SEMAPHORE_INCLUDE
|
#ifndef HGL_SEMAPHORE_INCLUDE
|
||||||
#define HGL_SEMAPHORE_INCLUDE
|
#define HGL_SEMAPHORE_INCLUDE
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#include<hgl/platform/Platform.h>
|
||||||
#include<dispatch/dispatch.h>
|
|
||||||
#endif//__APPLE__
|
|
||||||
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
@ -13,11 +11,7 @@ namespace hgl
|
|||||||
*/
|
*/
|
||||||
class Semaphore ///信号
|
class Semaphore ///信号
|
||||||
{
|
{
|
||||||
#ifdef __APPLE__
|
semaphore_ptr ptr;
|
||||||
dispatch_semaphore_t ptr;
|
|
||||||
#else
|
|
||||||
void *ptr;
|
|
||||||
#endif//__APPLE__
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user