summaryrefslogtreecommitdiff
path: root/logd/LogReaderThread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logd/LogReaderThread.cpp')
-rw-r--r--logd/LogReaderThread.cpp41
1 files changed, 9 insertions, 32 deletions
diff --git a/logd/LogReaderThread.cpp b/logd/LogReaderThread.cpp
index c6e60feff6..dc8582d1a4 100644
--- a/logd/LogReaderThread.cpp
+++ b/logd/LogReaderThread.cpp
@@ -35,7 +35,6 @@ LogReaderThread::LogReaderThread(LogBuffer* log_buffer, LogReaderList* reader_li
: log_buffer_(log_buffer),
reader_list_(reader_list),
writer_(std::move(writer)),
- leading_dropped_(false),
pid_(pid),
tail_(tail),
count_(0),
@@ -52,8 +51,6 @@ LogReaderThread::LogReaderThread(LogBuffer* log_buffer, LogReaderList* reader_li
void LogReaderThread::ThreadFunction() {
prctl(PR_SET_NAME, "logd.reader.per");
- leading_dropped_ = true;
-
auto lock = std::unique_lock{reader_list_->reader_threads_lock()};
while (!release_) {
@@ -72,21 +69,16 @@ void LogReaderThread::ThreadFunction() {
if (tail_) {
auto first_pass_state = log_buffer_->CreateFlushToState(flush_to_state_->start(),
flush_to_state_->log_mask());
- log_buffer_->FlushTo(writer_.get(), *first_pass_state,
- [this](log_id_t log_id, pid_t pid, uint64_t sequence,
- log_time realtime, uint16_t dropped_count) {
- return FilterFirstPass(log_id, pid, sequence, realtime,
- dropped_count);
- });
- leading_dropped_ =
- true; // TODO: Likely a bug, if leading_dropped_ was not true before calling
- // flushTo(), then it should not be reset to true after.
+ log_buffer_->FlushTo(
+ writer_.get(), *first_pass_state,
+ [this](log_id_t log_id, pid_t pid, uint64_t sequence, log_time realtime) {
+ return FilterFirstPass(log_id, pid, sequence, realtime);
+ });
}
bool flush_success = log_buffer_->FlushTo(
writer_.get(), *flush_to_state_,
- [this](log_id_t log_id, pid_t pid, uint64_t sequence, log_time realtime,
- uint16_t dropped_count) {
- return FilterSecondPass(log_id, pid, sequence, realtime, dropped_count);
+ [this](log_id_t log_id, pid_t pid, uint64_t sequence, log_time realtime) {
+ return FilterSecondPass(log_id, pid, sequence, realtime);
});
// We only ignore entries before the original start time for the first flushTo(), if we
@@ -127,17 +119,9 @@ void LogReaderThread::ThreadFunction() {
}
// A first pass to count the number of elements
-FilterResult LogReaderThread::FilterFirstPass(log_id_t, pid_t pid, uint64_t, log_time realtime,
- uint16_t dropped_count) {
+FilterResult LogReaderThread::FilterFirstPass(log_id_t, pid_t pid, uint64_t, log_time realtime) {
auto lock = std::lock_guard{reader_list_->reader_threads_lock()};
- if (leading_dropped_) {
- if (dropped_count) {
- return FilterResult::kSkip;
- }
- leading_dropped_ = false;
- }
-
if ((!pid_ || pid_ == pid) && (start_time_ == log_time::EPOCH || start_time_ <= realtime)) {
++count_;
}
@@ -147,7 +131,7 @@ FilterResult LogReaderThread::FilterFirstPass(log_id_t, pid_t pid, uint64_t, log
// A second pass to send the selected elements
FilterResult LogReaderThread::FilterSecondPass(log_id_t log_id, pid_t pid, uint64_t,
- log_time realtime, uint16_t dropped_count) {
+ log_time realtime) {
auto lock = std::lock_guard{reader_list_->reader_threads_lock()};
if (skip_ahead_[log_id]) {
@@ -155,13 +139,6 @@ FilterResult LogReaderThread::FilterSecondPass(log_id_t log_id, pid_t pid, uint6
return FilterResult::kSkip;
}
- if (leading_dropped_) {
- if (dropped_count) {
- return FilterResult::kSkip;
- }
- leading_dropped_ = false;
- }
-
// Truncate to close race between first and second pass
if (non_block_ && tail_ && index_ >= count_) {
return FilterResult::kStop;