Update Logger.cpp

Should not lose the log :)
This commit is contained in:
u6th9d 2018-10-09 16:46:13 +08:00 committed by GitHub
parent 4d9166443b
commit 3c2a53d58f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;
} }
} }
} }