Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5a960a1 authored by Josh Gao's avatar Josh Gao
Browse files

debuggerd: remove useless timeout from wait_for_signal.

The watchdog already handles things for us, so the timeout logic in
wait_for_signal is pointless.

Change-Id: Id81ad5f294068216b73e04c4e2ceca072ae1bbc0
parent 07f14c9c
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -459,9 +459,10 @@ static bool perform_dump(const debugger_request_t& request, int fd, int tombston
    return false;
  }

  int total_sleep_time_usec = 0;
  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) {
      case -1:
        ALOGE("debuggerd: timed out waiting for signal");
+2 −13
Original line number Diff line number Diff line
@@ -31,9 +31,6 @@
#include <backtrace/Backtrace.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.
bool is_allowed_in_logcat(enum logtype ltype) {
  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) {
    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) {
      ALOGE("waitpid failed: tid %d, %s", tid, strerror(errno));
      return -1;
@@ -91,14 +88,6 @@ int wait_for_signal(pid_t tid, int* total_sleep_time_usec) {
        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;
  }
}

+1 −1
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ enum logtype {
void _LOG(log_t* log, logtype ltype, const char *fmt, ...)
        __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, ...);