From c482113b5fbb607385d8195af489af6045cfaff0 Mon Sep 17 00:00:00 2001 From: lace <> Date: Sun, 29 Apr 2007 21:37:39 +0000 Subject: [PATCH] +LOOPS_MIN --- debugger.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/debugger.c b/debugger.c index 8313f78..94d8a64 100644 --- a/debugger.c +++ b/debugger.c @@ -20,6 +20,9 @@ #define USLEEP (1000000 / 2) #endif #define TIMEOUT_SECS 20 +/* LOOPS_MIN is a safety as QEMU clock time sucks. + 100000 is 4s natively and 53s in QEMU. */ +#define LOOPS_MIN 500000 #define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) @@ -152,6 +155,7 @@ static enum state state (pid_t pid, unsigned expect_mask, const char *expect_mas { enum state found; time_t timeout = time (NULL) + TIMEOUT_SECS; + unsigned loops = 0; /* Sanity check `1 << enum state' was not misplaced with `enum state'. */ assert (1 << (STATE_FIRST + 1) >= STATE_LAST); @@ -170,7 +174,7 @@ static enum state state (pid_t pid, unsigned expect_mask, const char *expect_mas if (((1 << found) & expect_mask) != 0) return found; } - while (time (NULL) < timeout); + while (loops++ < LOOPS_MIN || time (NULL) < timeout); fprintf (stderr, "Found for PID %d state %s but expecting (%s)\n", (int) pid, state_to_name (found), expect_mask_string); -- 1.8.3.1