repo.or.cz
/
valgrind.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
tests/vg_regtest: Always evaluate prerequisite expressions with sh
[valgrind.git]
/
gdbserver_tests
/
clean_after_fork.c
blob
6b9aa15d3531d242847e5ef787531fefb71fe761
1
#include <stdlib.h>
2
#include <stdio.h>
3
#include <errno.h>
4
#include <unistd.h>
5
#include <sys/wait.h>
6
int
main
()
7
{
8
int
mem
=
0
,
pid
;
9
pid
=
fork
();
10
if
(
pid
== -
1
) {
11
mem
=
1
;
12
perror
(
"fork"
);
13
exit
(
1
);
14
}
15
16
if
(
pid
==
0
) {
17
int
burn
;
18
for
(
burn
=
0
;
burn
<
100000
;
burn
++)
/* burncpu */
__asm__
__volatile
(
""
:::
"memory"
) ;
19
if
(
mem
==
0
)
20
exit
(
0
);
21
else
22
exit
(
1
);
23
}
else
{
24
int
ret
;
25
int
status
;
26
while
((
ret
=
waitpid
(
pid
, &
status
,
0
)) !=
pid
) {
27
if
(
errno
!=
EINTR
) {
28
perror
(
"waitpid"
);
29
exit
(
1
);
30
}
31
}
32
mem
=
status
;
33
}
34
if
(
mem
==
0
)
35
printf
(
"mem is zero
\n
"
);
36
37
return
0
;
38
}