brintos

brintos / linux-shallow public Read only

0
0
Text · 813 B · 457b29f Raw
52 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#include <pthread.h>3#include <stdlib.h>4#include <signal.h>5#include <unistd.h>6#include <linux/compiler.h>7#include "../tests.h"8 9static volatile sig_atomic_t done;10 11/* We want to check this symbol in perf report */12noinline void test_loop(void);13 14static void sighandler(int sig __maybe_unused)15{16	done = 1;17}18 19noinline void test_loop(void)20{21	while (!done);22}23 24static void *thfunc(void *arg)25{26	void (*loop_fn)(void) = arg;27 28	loop_fn();29	return NULL;30}31 32static int thloop(int argc, const char **argv)33{34	int sec = 1;35	pthread_t th;36 37	if (argc > 0)38		sec = atoi(argv[0]);39 40	signal(SIGINT, sighandler);41	signal(SIGALRM, sighandler);42	alarm(sec);43 44	pthread_create(&th, NULL, thfunc, test_loop);45	test_loop();46	pthread_join(th, NULL);47 48	return 0;49}50 51DEFINE_WORKLOAD(thloop);52