use strict; use warnings; use MCE::Mutex; use MCE::Shared; my $mutex = MCE::Mutex->new(); tie my $cntr, 'MCE::Shared', 0; my $val; if ( ! defined ( my $pid = fork() ) ) { die "Cannot fork!: $!"; } elsif ( $pid == 0 ) { # Child for ( 1 .. 10000 ) { $mutex->lock; $val = $cntr++; $mutex->unlock; } } else { # Parent for ( 1 .. 10000 ) { $mutex->lock; $val = $cntr++; $mutex->unlock; } waitpid( $pid, 0 ); print "counter: ", $cntr, "\n"; }