diff options
author | Tom Cherry <tomcherry@google.com> | 2020-10-05 11:35:59 -0700 |
---|---|---|
committer | Tom Cherry <tomcherry@google.com> | 2020-10-05 14:59:19 -0700 |
commit | 28b9eb513079d8ceb4b0bd512359117582cb83cd (patch) | |
tree | 8841bed2786a8a7e1269a7dc82847917bf3fabba /logd/LogReaderThread.cpp | |
parent | f99f09eedab6de27d0484703e6ea67e9e1aa21cd (diff) |
logd: add locks around ~SerializedFlushToState
This accesses shared resources in SerializedLogBuffer and therefore
requires a lock.
Bug: 169736426
Test: malloc_debug_system_tests
Change-Id: I807c65f4719481f933b4917a50f83f933b1929fb
Diffstat (limited to 'logd/LogReaderThread.cpp')
-rw-r--r-- | logd/LogReaderThread.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/logd/LogReaderThread.cpp b/logd/LogReaderThread.cpp index 4a8be01fa3..6ac9741c30 100644 --- a/logd/LogReaderThread.cpp +++ b/logd/LogReaderThread.cpp @@ -72,6 +72,7 @@ void LogReaderThread::ThreadFunction() { [this](log_id_t log_id, pid_t pid, uint64_t sequence, log_time realtime) { return FilterFirstPass(log_id, pid, sequence, realtime); }); + log_buffer_->DeleteFlushToState(std::move(first_pass_state)); } bool flush_success = log_buffer_->FlushTo( writer_.get(), *flush_to_state_, @@ -105,6 +106,10 @@ void LogReaderThread::ThreadFunction() { } } + lock.unlock(); + log_buffer_->DeleteFlushToState(std::move(flush_to_state_)); + lock.lock(); + writer_->Release(); auto& log_reader_threads = reader_list_->reader_threads(); |