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