summaryrefslogtreecommitdiffstats
path: root/kernel/tests/lib/tst_sig_proc.c
blob: 509418af440e104fc7f418aca2e03b470a8ae2f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (c) 2016 Linux Test Project
 */

#include <stdlib.h>
#include <sys/types.h>

#include "tst_sig_proc.h"

#define TST_NO_DEFAULT_MAIN
#include "tst_test.h"

pid_t create_sig_proc(int sig, int count, unsigned int usec)
{
	pid_t pid, cpid;

	pid = getpid();
	cpid = SAFE_FORK();

	if (cpid == 0) {
		while (count-- > 0) {
			usleep(usec);
			if (kill(pid, sig) == -1)
				break;
		}
		exit(0);
	}

	return cpid;
}