diff --git a/src/Apple/Semaphore.cpp b/src/Apple/Semaphore.cpp index 7e0af7c..d4301aa 100644 --- a/src/Apple/Semaphore.cpp +++ b/src/Apple/Semaphore.cpp @@ -1,7 +1,5 @@ #include #include -#include -#include namespace hgl { diff --git a/src/UNIX/CondVar.cpp b/src/UNIX/CondVar.cpp index 395133c..320b76d 100644 --- a/src/UNIX/CondVar.cpp +++ b/src/UNIX/CondVar.cpp @@ -10,13 +10,13 @@ namespace hgl { cond_var=new pthread_cond_t; - pthread_cond_init((pthread_cond_t *)cond_var,nullptr); + pthread_cond_init(cond_var,nullptr); } CondVar::~CondVar() { - pthread_cond_destroy((pthread_cond_t *)cond_var); - delete (pthread_cond_t *)cond_var; + pthread_cond_destroy(cond_var); + delete cond_var; } bool CondVar::Wait(ThreadMutex *tm,double t) @@ -27,21 +27,21 @@ namespace hgl GetWaitTime(abstime,t); - return(!pthread_cond_timedwait((pthread_cond_t *)cond_var,tm->GetThreadMutex(),&abstime)); + return(!pthread_cond_timedwait(cond_var,tm->GetThreadMutex(),&abstime)); } else { - return(!pthread_cond_wait((pthread_cond_t *)cond_var,tm->GetThreadMutex())); + return(!pthread_cond_wait(cond_var,tm->GetThreadMutex())); } } void CondVar::Signal() { - pthread_cond_signal((pthread_cond_t *)cond_var); + pthread_cond_signal(cond_var); } void CondVar::Broadcast() { - pthread_cond_broadcast((pthread_cond_t *)cond_var); + pthread_cond_broadcast(cond_var); } }//namespace hgl diff --git a/src/UNIX/RWLock.cpp b/src/UNIX/RWLock.cpp index 26707ff..57c99a0 100644 --- a/src/UNIX/RWLock.cpp +++ b/src/UNIX/RWLock.cpp @@ -9,15 +9,15 @@ namespace hgl { lock=new pthread_rwlock_t; - pthread_rwlock_init((pthread_rwlock_t *)lock,nullptr); + pthread_rwlock_init(lock,nullptr); } RWLock::~RWLock() { - pthread_rwlock_destroy((pthread_rwlock_t *)lock); + pthread_rwlock_destroy(lock); } - bool RWLock::TryReadLock() {return !pthread_rwlock_tryrdlock((pthread_rwlock_t *)lock);} + bool RWLock::TryReadLock() {return !pthread_rwlock_tryrdlock(lock);} #if HGL_OS != HGL_OS_macOS bool RWLock::WaitReadLock(double t) @@ -26,14 +26,14 @@ namespace hgl GetWaitTime(abstime,t); - return !pthread_rwlock_timedrdlock((pthread_rwlock_t *)lock,&abstime); + return !pthread_rwlock_timedrdlock(lock,&abstime); } #endif//HGL_OS != HGL_OS_macOS - bool RWLock::ReadLock() {return !pthread_rwlock_rdlock((pthread_rwlock_t *)lock);} - bool RWLock::ReadUnlock() {return !pthread_rwlock_unlock((pthread_rwlock_t *)lock);} + bool RWLock::ReadLock() {return !pthread_rwlock_rdlock(lock);} + bool RWLock::ReadUnlock() {return !pthread_rwlock_unlock(lock);} - bool RWLock::TryWriteLock() {return !pthread_rwlock_trywrlock((pthread_rwlock_t *)lock);} + bool RWLock::TryWriteLock() {return !pthread_rwlock_trywrlock(lock);} #if HGL_OS != HGL_OS_macOS bool RWLock::WaitWriteLock(double t) @@ -42,10 +42,10 @@ namespace hgl GetWaitTime(abstime,t); - return !pthread_rwlock_timedwrlock((pthread_rwlock_t *)lock,&abstime); + return !pthread_rwlock_timedwrlock(lock,&abstime); } #endif//HGL_OS != HGL_OS_macOS - bool RWLock::WriteLock() {return !pthread_rwlock_wrlock((pthread_rwlock_t *)lock);} - bool RWLock::WriteUnlock() {return !pthread_rwlock_unlock((pthread_rwlock_t *)lock);} + bool RWLock::WriteLock() {return !pthread_rwlock_wrlock(lock);} + bool RWLock::WriteUnlock() {return !pthread_rwlock_unlock(lock);} }//namespace hgl diff --git a/src/UNIX/Semaphore.cpp b/src/UNIX/Semaphore.cpp index ea62c15..399acd7 100644 --- a/src/UNIX/Semaphore.cpp +++ b/src/UNIX/Semaphore.cpp @@ -14,10 +14,10 @@ namespace hgl { ptr=new sem_t; - if(sem_init((sem_t *)ptr,PTHREAD_PROCESS_PRIVATE,0)) + if(sem_init(ptr,PTHREAD_PROCESS_PRIVATE,0)) { LOG_ERROR(OS_TEXT("sem_init error,max_count=")+OSString(max_count)); - delete (sem_t *)ptr; + delete ptr; ptr=nullptr; } } @@ -26,8 +26,8 @@ namespace hgl { if(!ptr)return; - sem_destroy((sem_t *)ptr); - delete (sem_t *)ptr; + sem_destroy(ptr); + delete ptr; } /** @@ -43,14 +43,14 @@ namespace hgl int result=0; for(int i=0;iGetThreadMutex()),(DWORD)(time>0?time*1000:INFINITE)); + return SleepConditionVariableCS(cond_var,tm->GetThreadMutex(),(DWORD)(time>0?time*1000:INFINITE)); } bool CondVar::Wait(RWLock *lock, double time, bool read) { - return SleepConditionVariableSRW((CONDITION_VARIABLE *)cond_var,(SRWLOCK *)(lock->GetRWLock()),(DWORD)(time>0?time*1000:INFINITE),read?CONDITION_VARIABLE_LOCKMODE_SHARED:0); + return SleepConditionVariableSRW(cond_var,lock->GetRWLock(),(DWORD)(time>0?time*1000:INFINITE),read?CONDITION_VARIABLE_LOCKMODE_SHARED:0); } void CondVar::Signal() { - WakeConditionVariable((CONDITION_VARIABLE *)cond_var); + WakeConditionVariable(cond_var); } void CondVar::Broadcast() { - WakeAllConditionVariable((CONDITION_VARIABLE *)cond_var); + WakeAllConditionVariable(cond_var); } }//namespace hgl diff --git a/src/Win/RWLock.cpp b/src/Win/RWLock.cpp index 3a1018b..c05aa56 100644 --- a/src/Win/RWLock.cpp +++ b/src/Win/RWLock.cpp @@ -1,4 +1,4 @@ -#include +#include #pragma warning(disable:4800) // BOOL -> bool 性能损失警告 namespace hgl @@ -7,19 +7,19 @@ namespace hgl { lock = new SRWLOCK; - InitializeSRWLock((SRWLOCK *)lock); + InitializeSRWLock(lock); } RWLock::~RWLock() { - delete (SRWLOCK *)lock; + delete lock; } - bool RWLock::TryReadLock() { return TryAcquireSRWLockShared((SRWLOCK *)lock); } - bool RWLock::ReadLock() { AcquireSRWLockShared((SRWLOCK *)lock); return(true); } - bool RWLock::ReadUnlock() { ReleaseSRWLockShared((SRWLOCK *)lock); return(true); } + bool RWLock::TryReadLock(){ return TryAcquireSRWLockShared(lock); } + bool RWLock::ReadLock (){ AcquireSRWLockShared(lock); return(true); } + bool RWLock::ReadUnlock (){ ReleaseSRWLockShared(lock); return(true); } - bool RWLock::TryWriteLock() { return TryAcquireSRWLockExclusive((SRWLOCK *)lock); } - bool RWLock::WriteLock() { AcquireSRWLockExclusive((SRWLOCK *)lock); return(true); } - bool RWLock::WriteUnlock() { ReleaseSRWLockExclusive((SRWLOCK *)lock); return(true); } + bool RWLock::TryWriteLock (){ return TryAcquireSRWLockExclusive(lock); } + bool RWLock::WriteLock (){ AcquireSRWLockExclusive(lock); return(true); } + bool RWLock::WriteUnlock (){ ReleaseSRWLockExclusive(lock); return(true); } }//namespace hgl diff --git a/src/Win/Semaphore.cpp b/src/Win/Semaphore.cpp index a937a30..e0d33ca 100644 --- a/src/Win/Semaphore.cpp +++ b/src/Win/Semaphore.cpp @@ -11,7 +11,7 @@ namespace hgl */ Semaphore::Semaphore(int max_count) { - ptr=CreateSemaphore(nullptr,0,max_count,nullptr); + ptr=CreateSemaphoreW(nullptr,0,max_count,nullptr); if(!ptr) LOG_ERROR(OS_TEXT("CreateSemaphore error,max_count=")+OSString(max_count));