#!/usr/bin/perl

# David Tate
# Does nothing more than amuse its creator, 
# which is quite a feat...

MAIN: {
	$SIG{INT} = sub { 
		print "\nCurrently == ", $number;  
	};
	run();
}

sub run() {
	FORK: {
		$number = 2; 
		$parent_iter = 1.00005;
		$child_iter  = 1.00004;
		if ($pid = fork) {
			$start = `date`;
			while (1) { 
				$last = $number;
				$number *= $parent_iter;
				#print $number, "\n";
				if ($last == $number) {
					last;
				}
			}
			$end = `date`;
			print "Parent done at rate $parent_iter.\n";
			print "Parent start: $start";
			print "Parent end:   $end";
		}
		elsif (defined $pid){
			$start = `date`;
			while (1) { 
				$last = $number;
				$number *= $child_iter;
				#print $number, "\n";
				if ($last == $number) {
					last;
				}
			}
			$end = `date`;
			print "Child done at rate $child_iter.\n";
			print "Child start: $start";
			print "Child end:   $end";
			exit;
		}
		elsif ($! =~ /No more process/)  {
			sleep 5;
			redo FORK;
		}
	}
	wait;
}

