]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/sim/cris/c/clone3.c
This commit was manufactured by cvs2svn to create branch
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / cris / c / clone3.c
1 /* Check that exiting from a parent thread does not kill the child.
2 #notarget: cris*-*-elf
3 */
4
5 #include <stddef.h>
6 #include <stdlib.h>
7 #include <stdio.h>
8 #include <limits.h>
9 #include <unistd.h>
10 #include <sched.h>
11 #include <signal.h>
12 #include <errno.h>
13 #include <sys/types.h>
14 #include <sys/wait.h>
15
16 int
17 process (void *arg)
18 {
19 int i;
20
21 for (i = 0; i < 50; i++)
22 if (sched_yield ())
23 abort ();
24
25 printf ("pass\n");
26 return 0;
27 }
28
29 int
30 main (void)
31 {
32 int pid;
33 long stack[16384];
34
35 pid = clone (process, (char *) stack + sizeof (stack) - 64,
36 (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND)
37 | SIGCHLD, "ab");
38 if (pid <= 0)
39 {
40 fprintf (stderr, "Bad clone %d\n", pid);
41 abort ();
42 }
43
44 exit (0);
45 }