Merge "debuggerd: remove useless timeout from wait_for_signal."
am: 5f2bc28ebf
Change-Id: Iee4f22c04ad330c91f86ca03583f8e36b2816039
This commit is contained in:
commit
4c4a172ee9
3 changed files with 6 additions and 16 deletions
|
|
@ -459,9 +459,10 @@ static bool perform_dump(const debugger_request_t& request, int fd, int tombston
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int total_sleep_time_usec = 0;
|
|
||||||
while (true) {
|
while (true) {
|
||||||
int signal = wait_for_signal(request.tid, &total_sleep_time_usec);
|
// wait_for_signal waits for forever, but the watchdog process will kill us
|
||||||
|
// if it takes too long.
|
||||||
|
int signal = wait_for_signal(request.tid);
|
||||||
switch (signal) {
|
switch (signal) {
|
||||||
case -1:
|
case -1:
|
||||||
ALOGE("debuggerd: timed out waiting for signal");
|
ALOGE("debuggerd: timed out waiting for signal");
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,6 @@
|
||||||
#include <backtrace/Backtrace.h>
|
#include <backtrace/Backtrace.h>
|
||||||
#include <log/log.h>
|
#include <log/log.h>
|
||||||
|
|
||||||
constexpr int SLEEP_TIME_USEC = 50000; // 0.05 seconds
|
|
||||||
constexpr int MAX_TOTAL_SLEEP_USEC = 10000000; // 10 seconds
|
|
||||||
|
|
||||||
// Whitelist output desired in the logcat output.
|
// Whitelist output desired in the logcat output.
|
||||||
bool is_allowed_in_logcat(enum logtype ltype) {
|
bool is_allowed_in_logcat(enum logtype ltype) {
|
||||||
if ((ltype == HEADER)
|
if ((ltype == HEADER)
|
||||||
|
|
@ -74,10 +71,10 @@ void _LOG(log_t* log, enum logtype ltype, const char* fmt, ...) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int wait_for_signal(pid_t tid, int* total_sleep_time_usec) {
|
int wait_for_signal(pid_t tid) {
|
||||||
while (true) {
|
while (true) {
|
||||||
int status;
|
int status;
|
||||||
pid_t n = TEMP_FAILURE_RETRY(waitpid(tid, &status, __WALL | WNOHANG));
|
pid_t n = TEMP_FAILURE_RETRY(waitpid(tid, &status, __WALL));
|
||||||
if (n == -1) {
|
if (n == -1) {
|
||||||
ALOGE("waitpid failed: tid %d, %s", tid, strerror(errno));
|
ALOGE("waitpid failed: tid %d, %s", tid, strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -91,14 +88,6 @@ int wait_for_signal(pid_t tid, int* total_sleep_time_usec) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*total_sleep_time_usec > MAX_TOTAL_SLEEP_USEC) {
|
|
||||||
ALOGE("timed out waiting for stop signal: tid=%d", tid);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
usleep(SLEEP_TIME_USEC);
|
|
||||||
*total_sleep_time_usec += SLEEP_TIME_USEC;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ enum logtype {
|
||||||
void _LOG(log_t* log, logtype ltype, const char *fmt, ...)
|
void _LOG(log_t* log, logtype ltype, const char *fmt, ...)
|
||||||
__attribute__ ((format(printf, 3, 4)));
|
__attribute__ ((format(printf, 3, 4)));
|
||||||
|
|
||||||
int wait_for_signal(pid_t tid, int* total_sleep_time_usec);
|
int wait_for_signal(pid_t tid);
|
||||||
|
|
||||||
void dump_memory(log_t* log, Backtrace* backtrace, uintptr_t addr, const char* fmt, ...);
|
void dump_memory(log_t* log, Backtrace* backtrace, uintptr_t addr, const char* fmt, ...);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue