use warnings;
#use Inline C => Config =>
# BUILD_NOISY => 1;
use Inline C => <<'EOC';
static int x = 5;
void set_x(int z) {
x = z;
}
void get_x(char * id) {
printf("%s %d\n", id, x);
}
EOC
get_x('1st call:');
if($pid = fork()) {
waitpid($pid,0);
} else {
set_x(10);
get_x('2nd call:');
exit(0);
}
get_x('3rd call:');
####
1st call: 5
2nd call: 10
3rd call: 5
##
##
1st call: 5
2nd call: 10
3rd call: 10
##
##
use warnings;
$g = 5;
print "1st call: $g\n";
if($pid = fork()) {
waitpid($pid,0);
} else {
$g = 10;
print "2nd call: $g\n";
exit(0);
}
print "3rd call: $g\n";
##
##
1st call: 5
2nd call: 10
3rd call: 5