diff options
-rw-r--r-- | logd/LogTimes.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/logd/LogTimes.cpp b/logd/LogTimes.cpp index 68a068008..229be3cd5 100644 --- a/logd/LogTimes.cpp +++ b/logd/LogTimes.cpp @@ -128,9 +128,9 @@ void *LogTimeEntry::threadStart(void *obj) { lock(); - while (me->threadRunning && !me->isError_Locked()) { - uint64_t start = me->mStart; + uint64_t start = me->mStart; + while (me->threadRunning && !me->isError_Locked()) { unlock(); if (me->mTail) { @@ -143,8 +143,11 @@ void *LogTimeEntry::threadStart(void *obj) { if (start == LogBufferElement::FLUSH_ERROR) { me->error_Locked(); + break; } + me->mStart = start + 1; + if (me->mNonBlock || !me->threadRunning || me->isError_Locked()) { break; } |