$data = tie( %data, 'Win32::MMF::Shareable', 'data', { timeout => 60 } ); if( $data->{error} ) { die( “can't tie data: ” . $data->{errstr} ) } # maybe? or just return undef $data{min} = 0; $data{max} = 500; $data{current} = 0; $data->debug() if $debug_flag; # each process must do blocks of 10 at a time { $data->lock(); # timeout 60 seconds for( $data{end} = $data{current} + 10; $data{current} < $data{end}; $data{current}++ ) { # do job number $data{current} } $data->unlock(); }