/* * spinner.c * * Spins as hard as it can, forking multiple processes as needed. Intended to * test our ability to detect stuck processes in userspace. */ #include #include #include #include static void spin(void) { volatile int i; for (i=0; i <= 1000; i++) { if (i == 1000) { i = 0; } } } int main(int argc, char **argv) { int i, count, pid; if (argc != 2) { errx(1, "Usage: spinner "); } count = atoi(argv[1]); for (i = 1; i < count; i++) { pid = fork(); if (pid != 0) { spin(); } } spin(); errx(2, "spinner: spin returned"); // 09 Jan 2015 : GWA : Shouldn't get here. return 0; }