📄 condition.cpp
字号:
#include "condition.h"
#include "mutex.h"
Condition::Condition(Mutex&mutex)
:mutex_(mutex)
{
#ifndef WIN32
pthread_cond_init(&cond_,NULL);
#endif
}
Condition::~Condition()
{
#ifndef WIN32
pthread_cond_destroy(&cond_);
#endif
}
bool Condition::signal()
{
#ifdef WIN32
return true;
#else
MutexApply ma(mutex_);
return pthread_cond_signal(&cond_) == 0;
#endif
}
bool Condition::broadcast()
{
#ifdef WIN32
return true;
#else
MutexApply ma(mutex_);
return pthread_cond_broadcast(&cond_) == 0;
#endif
}
bool Condition::wait()
{
#ifdef WIN32
return true;
#else
MutexApply ma(mutex_);
pthread_mutex_t mutex = mutex_;
return pthread_cond_wait(&cond_,&mutex);
#endif
}
int Condition::timedwait(const struct timespec* pabstime)
{
#ifdef WIN32
return 0;
#else
MutexApply ma(mutex_);
pthread_mutex_t mutex = mutex_;
return pthread_cond_timedwait(&cond_,&mutex,pabstime);
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -