summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Salyzyn <salyzyn@google.com>2014-09-29 17:41:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-09-29 17:41:11 +0000
commitfc1357cffbbe999c8d4065b89ce0435f35243a82 (patch)
treeddb806912d2abdb7b526cae9fb7cedf1fec93623
parent68c19686e8f9b5a88e3b2729a453d03516be79f1 (diff)
parentf669acb01880216b6c1d29fc226f2c3ec3a6368a (diff)
downloadsystem_core-fc1357cffbbe999c8d4065b89ce0435f35243a82.zip
system_core-fc1357cffbbe999c8d4065b89ce0435f35243a82.tar.gz
system_core-fc1357cffbbe999c8d4065b89ce0435f35243a82.tar.bz2
Merge "logd: in nonblocking read, sched_yield() synchronization"
-rw-r--r--logd/LogReader.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/logd/LogReader.cpp b/logd/LogReader.cpp
index 8458c19..26df087 100644
--- a/logd/LogReader.cpp
+++ b/logd/LogReader.cpp
@@ -92,6 +92,11 @@ bool LogReader::onDataAvailable(SocketClient *cli) {
bool nonBlock = false;
if (strncmp(buffer, "dumpAndClose", 12) == 0) {
+ // Allow writer to get some cycles, and wait for pending notifications
+ sched_yield();
+ LogTimeEntry::lock();
+ LogTimeEntry::unlock();
+ sched_yield();
nonBlock = true;
}