mirror of
https://github.com/joyieldInc/predixy.git
synced 2025-12-24 22:46:41 +08:00
Update Logger.cpp
Should not lose the log :)
This commit is contained in:
parent
4d9166443b
commit
3c2a53d58f
@ -188,20 +188,18 @@ LogUnit* Logger::getLogUnit()
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
std::unique_lock<std::mutex> lck(mMtx);
|
std::unique_lock<std::mutex> lck(mMtx);
|
||||||
|
while (true) {
|
||||||
if (!mFree.empty()) {
|
if (!mFree.empty()) {
|
||||||
log = mFree.back();
|
log = mFree.back();
|
||||||
mFree.resize(mFree.size() - 1);
|
mFree.resize(mFree.size() - 1);
|
||||||
|
break;
|
||||||
} else if (mLogUnitCnt < mFree.capacity()) {
|
} else if (mLogUnitCnt < mFree.capacity()) {
|
||||||
++mLogUnitCnt;
|
++mLogUnitCnt;
|
||||||
|
break;
|
||||||
} else {
|
} else {
|
||||||
while (mFree.empty() && !mStop) {
|
while (mFree.empty() && !mStop) {
|
||||||
mCond.wait(lck);
|
mCond.wait(lck);
|
||||||
}
|
}
|
||||||
if (!mFree.empty()) {
|
|
||||||
log = mFree.back();
|
|
||||||
mFree.resize(mFree.size() - 1);
|
|
||||||
} else {
|
|
||||||
return nullptr;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user