ok 2
########
$| = 1;
+if ($cid = fork) {
+ sleep 1;
+ print "not " unless kill 'INT', $cid;
+ print "ok 2\n";
+}
+else {
+ # XXX On Windows the default signal handler kills the
+ # XXX whole process, not just the thread (pseudo-process)
+ $SIG{INT} = sub { exit };
+ print "ok 1\n";
+ sleep 5;
+ die;
+}
+EXPECT
+ok 1
+ok 2
+########
+$| = 1;
sub forkit {
print "iteration $i start\n";
my $x = fork;
forked second kid
second child
wait() returned ok
+########
+pipe(RDR,WTR) or die $!;
+my $pid = fork;
+die "fork: $!" if !defined $pid;
+if ($pid == 0) {
+ my $rand_child = rand;
+ close RDR;
+ print WTR $rand_child, "\n";
+ close WTR;
+} else {
+ my $rand_parent = rand;
+ close WTR;
+ chomp(my $rand_child = <RDR>);
+ close RDR;
+ print $rand_child ne $rand_parent, "\n";
+}
+EXPECT
+1