liblog: high CPU usage from logcat

BUG: 12457855

- log_read.c poll timeout should be -1 instead of 0 when idling

(cherry picked from commit 080bbfab94)

Change-Id: I9082a15fae0fbf999c0ed516950a49d65a279298
This commit is contained in:
Mark Salyzyn 2014-01-09 07:45:30 -08:00
parent 11aa6ee98c
commit d0a83fddf1
1 changed files with 7 additions and 5 deletions

View File

@ -1,5 +1,5 @@
/*
** Copyright 2013, The Android Open Source Project
** Copyright 2013-2014, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@ -31,7 +31,9 @@ typedef char bool;
#define LOG_FILE_DIR "/dev/log/"
#define LOG_TIMEOUT_MS 5
/* timeout in milliseconds */
#define LOG_TIMEOUT_FLUSH 5
#define LOG_TIMEOUT_NEVER -1
#define logger_for_each(logger, logger_list) \
for (logger = node_to_item((logger_list)->node.next, struct logger, node); \
@ -291,7 +293,7 @@ struct logger *android_logger_open(struct logger_list *logger_list,
list_init(&logger->log_list);
list_add_tail(&logger_list->node, &logger->node);
logger->top = logger_list;
logger_list->timeout_ms = LOG_TIMEOUT_MS;
logger_list->timeout_ms = LOG_TIMEOUT_FLUSH;
goto ok;
err_name:
@ -494,14 +496,14 @@ int android_logger_list_read(struct logger_list *logger_list,
} else if (logger_list->mode & O_NDELAY) {
error = EAGAIN;
} else {
logger_list->timeout_ms = 0;
logger_list->timeout_ms = LOG_TIMEOUT_NEVER;
}
logger_list->flush = true;
goto try_flush;
}
logger_list->timeout_ms = LOG_TIMEOUT_MS;
logger_list->timeout_ms = LOG_TIMEOUT_FLUSH;
/* Anti starvation */
if (!logger_list->flush