first commit

This commit is contained in:
2019-08-19 19:19:58 +08:00
parent 7bb6b54204
commit 2b71bf8135
145 changed files with 23208 additions and 0 deletions

32
inc/hgl/thread/CondVar.h Normal file
View File

@@ -0,0 +1,32 @@
#ifndef HGL_MULTI_THREAD_CONDITION_VARIABLE_INCLUDE
#define HGL_MULTI_THREAD_CONDITION_VARIABLE_INCLUDE
#include<hgl/platform/Platform.h>
namespace hgl
{
class ThreadMutex;
class RWLock;
/**
* 条件变量
*/
class CondVar
{
void *cond_var;
public:
CondVar();
virtual ~CondVar();
bool Wait(ThreadMutex *,double time=0); ///<释放指定ThreadMutex在条件符合后重新锁定并结束等待,0表示永久
#if HGL_OS == HGL_OS_Windows
bool Wait(RWLock *,double time=0,bool read=false); ///<释放指定RWLock在条件符合后重新锁定并结束等待。此函数仅在Windows 2008/Vista及更新版本中支持Linux/BSD版不支持
#endif//HGL_OS == HGL_OS_Windows
void Signal(); ///<发送一个信号,让一个等待的线程解锁
void Broadcast(); ///<广播一个信号,让所有等待的线程都解锁
};//class CondVar
}//namespace hgl
#endif//HGL_MULTI_THREAD_CONDITION_VARIABLE_INCLUDE