Change CondVar API to latest version

See: 1e349b6ce8
This commit is contained in:
rkx1209 2018-08-19 18:56:58 +09:00
parent dcd91b5932
commit ffb2dd4f11

View File

@ -8,15 +8,15 @@ class HosMutex {
HosMutex() { HosMutex() {
mutexInit(&this->m); mutexInit(&this->m);
} }
void lock() { void lock() {
mutexLock(&this->m); mutexLock(&this->m);
} }
void unlock() { void unlock() {
mutexUnlock(&this->m); mutexUnlock(&this->m);
} }
bool try_lock() { bool try_lock() {
return mutexTryLock(&this->m); return mutexTryLock(&this->m);
} }
@ -29,15 +29,12 @@ class HosRecursiveMutex {
HosRecursiveMutex() { HosRecursiveMutex() {
rmutexInit(&this->m); rmutexInit(&this->m);
} }
void lock() { void lock() {
rmutexLock(&this->m); rmutexLock(&this->m);
} }
void unlock() { void unlock() {
rmutexUnlock(&this->m); rmutexUnlock(&this->m);
} }
bool try_lock() { bool try_lock() {
return rmutexTryLock(&this->m); return rmutexTryLock(&this->m);
} }
@ -50,25 +47,25 @@ class HosCondVar {
public: public:
HosCondVar() { HosCondVar() {
mutexInit(&m); mutexInit(&m);
condvarInit(&cv, &m); condvarInit(&cv);
} }
Result WaitTimeout(u64 timeout) { Result WaitTimeout(u64 timeout) {
return condvarWaitTimeout(&cv, timeout); return condvarWaitTimeout(&cv, &m, timeout);
} }
Result Wait() { Result Wait() {
return condvarWait(&cv); return condvarWait(&cv, &m);
} }
Result Wake(int num) { Result Wake(int num) {
return condvarWake(&cv, num); return condvarWake(&cv, num);
} }
Result WakeOne() { Result WakeOne() {
return condvarWakeOne(&cv); return condvarWakeOne(&cv);
} }
Result WakeAll() { Result WakeAll() {
return condvarWakeAll(&cv); return condvarWakeAll(&cv);
} }
@ -83,30 +80,30 @@ class HosSemaphore {
HosSemaphore() { HosSemaphore() {
count = 0; count = 0;
mutexInit(&m); mutexInit(&m);
condvarInit(&cv, &m); condvarInit(&cv);
} }
HosSemaphore(u64 c) : count(c) { HosSemaphore(u64 c) : count(c) {
mutexInit(&m); mutexInit(&m);
condvarInit(&cv, &m); condvarInit(&cv);
} }
void Signal() { void Signal() {
mutexLock(&this->m); mutexLock(&this->m);
count++; count++;
condvarWakeOne(&cv); condvarWakeOne(&cv);
mutexUnlock(&this->m); mutexUnlock(&this->m);
} }
void Wait() { void Wait() {
mutexLock(&this->m); mutexLock(&this->m);
while (!count) { while (!count) {
condvarWait(&cv); condvarWait(&cv, &m);
} }
count--; count--;
mutexUnlock(&this->m); mutexUnlock(&this->m);
} }
bool TryWait() { bool TryWait() {
mutexLock(&this->m); mutexLock(&this->m);
bool success = false; bool success = false;