#if 0
#define USLEEP (1000000 / 2)
#endif
-#define TIMEOUT_SECS 10
+#define TIMEOUT_SECS 20
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
STATE_STOPPED,
STATE_PTRACED,
STATE_ZOMBIE,
+ STATE_DEAD,
STATE_LAST
};
case STATE_STOPPED: return "STATE_STOPPED";
case STATE_PTRACED: return "STATE_PTRACED";
case STATE_ZOMBIE: return "STATE_ZOMBIE";
+ case STATE_DEAD: return "STATE_DEAD";
default: crash ();
}
/* NOTREACHED */
if (f == NULL && errno == ENOENT)
found = STATE_ENOENT;
else if (f == NULL)
- crash ();
+ {
+ fprintf (stderr, "errno = %d\n", errno);
+ crash ();
+ }
else
{
int i;
found = STATE_PTRACED;
else if (strcmp (line + length, "Z (zombie)\n") == 0)
found = STATE_ZOMBIE;
+ /* FIXME: What does it mean? */
+ else if (strcmp (line + length, "X (dead)\n") == 0)
+ found = STATE_DEAD;
else
{
fprintf (stderr, "Found an unknown state: %s", line + length);
crash ();
}
}
- if (errno == ESRCH)
- return found;
- assert (found != STATE_INSTABLE);
+ assert (found != STATE_INSTABLE || errno == ESRCH);
i = fclose (f);
assert (i == 0);
}