1
0
mirror of https://github.com/Tencent/libco.git synced 2025-05-08 19:51:15 +08:00
libco/co_comm.cpp
2020-10-27 16:27:30 +08:00

24 lines
419 B
C++

#include "co_comm.h"
clsCoMutex::clsCoMutex() {
m_ptCondSignal = co_cond_alloc();
m_iWaitItemCnt = 0;
}
clsCoMutex::~clsCoMutex() { co_cond_free(m_ptCondSignal); }
void clsCoMutex::CoLock() {
if (m_iWaitItemCnt > 0) {
m_iWaitItemCnt++;
co_cond_timedwait(m_ptCondSignal, -1);
} else {
m_iWaitItemCnt++;
}
}
void clsCoMutex::CoUnLock() {
m_iWaitItemCnt--;
co_cond_signal(m_ptCondSignal);
}