Counter process



examples/forks/count.pl
use strict;
use warnings;
use Time::HiRes qw(time);
use lib '.';
use Task;
use ForkedCounter;

main();


sub main {
    my ($fork_count, $task_count, $max) = @ARGV;
    die "Usage: $0 FORK_COUNT HOW_MANY_TIMES TILL_WHICH_NUMBER\n" if not $max;
    my $start = time;

    if ($fork_count == 0) {
        for my $i (1..$task_count) {
            Task::count($max);
        }
    } elsif ($fork_count == -1) {
        ForkedCounter::counter_one_by_one($task_count, $max);
    } else {
        ForkedCounter::counter($fork_count, $task_count, $max);
    }


    my $end = time;
    my $elapsed = $end-$start;
    printf "Elapsed time %.2f\n", $elapsed;
}

perl count.pl 0 12 40000000