This commit is contained in:
u6th9d 2024-02-09 07:45:14 -07:00 committed by GitHub
commit 57505b136b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -188,20 +188,21 @@ LogUnit* Logger::getLogUnit()
} }
} else { } else {
std::unique_lock<std::mutex> lck(mMtx); std::unique_lock<std::mutex> lck(mMtx);
if (!mFree.empty()) { while (true) {
log = mFree.back(); if (!mStop) {
mFree.resize(mFree.size() - 1); return nullptr;
} else if (mLogUnitCnt < mFree.capacity()) {
++mLogUnitCnt;
} else {
while (mFree.empty() && !mStop) {
mCond.wait(lck);
} }
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()) {
++mLogUnitCnt;
break;
} else { } else {
return nullptr; while (mFree.empty() && !mStop) {
mCond.wait(lck);
}
} }
} }
} }