45 lines · 667 B · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 */#include <math.h>#include <signal.h>#include <stdlib.h>#include <unistd.h>#include <linux/compiler.h>#include <sys/wait.h>#include "../tests.h" static volatile sig_atomic_t done; static void sighandler(int sig __maybe_unused){	done = 1;} static int __sqrtloop(int sec){	signal(SIGALRM, sighandler);	alarm(sec); 	while (!done)		(void)sqrt(rand());	return 0;} static int sqrtloop(int argc, const char **argv){	int sec = 1; 	if (argc > 0)		sec = atoi(argv[0]); 	switch (fork()) {	case 0:		return __sqrtloop(sec);	case -1:		return -1;	default:		wait(NULL);	}	return 0;} DEFINE_WORKLOAD(sqrtloop);