From 667b2a41066e5bfd23644b3d93f5be8f9ddda053 Mon Sep 17 00:00:00 2001 From: gregor herrmann Date: Sat, 25 May 2024 18:04:10 +0200 Subject: New upstream version 1.890 --- lib/MCE/Candy.pm | 4 +- lib/MCE/Channel.pm | 6 +-- lib/MCE/Channel/Mutex.pm | 4 +- lib/MCE/Channel/MutexFast.pm | 4 +- lib/MCE/Channel/Simple.pm | 4 +- lib/MCE/Channel/SimpleFast.pm | 4 +- lib/MCE/Channel/Threads.pm | 4 +- lib/MCE/Channel/ThreadsFast.pm | 4 +- lib/MCE/Child.pm | 104 ++++++++++++++++++---------------------- lib/MCE/Core.pod | 2 +- lib/MCE/Core/Input/Generator.pm | 4 +- lib/MCE/Core/Input/Handle.pm | 4 +- lib/MCE/Core/Input/Iterator.pm | 4 +- lib/MCE/Core/Input/Request.pm | 4 +- lib/MCE/Core/Input/Sequence.pm | 4 +- lib/MCE/Core/Manager.pm | 4 +- lib/MCE/Core/Validation.pm | 4 +- lib/MCE/Core/Worker.pm | 4 +- lib/MCE/Examples.pod | 2 +- lib/MCE/Flow.pm | 4 +- lib/MCE/Grep.pm | 4 +- lib/MCE/Loop.pm | 4 +- lib/MCE/Map.pm | 4 +- lib/MCE/Mutex.pm | 4 +- lib/MCE/Mutex/Channel.pm | 4 +- lib/MCE/Mutex/Channel2.pm | 4 +- lib/MCE/Mutex/Flock.pm | 4 +- lib/MCE/Queue.pm | 4 +- lib/MCE/Relay.pm | 4 +- lib/MCE/Signal.pm | 4 +- lib/MCE/Step.pm | 4 +- lib/MCE/Stream.pm | 4 +- lib/MCE/Subs.pm | 4 +- lib/MCE/Util.pm | 4 +- 34 files changed, 112 insertions(+), 122 deletions(-) (limited to 'lib/MCE') diff --git a/lib/MCE/Candy.pm b/lib/MCE/Candy.pm index f25897d..32cfae3 100644 --- a/lib/MCE/Candy.pm +++ b/lib/MCE/Candy.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; our @CARP_NOT = qw( MCE ); @@ -240,7 +240,7 @@ MCE::Candy - Sugar methods and output iterators =head1 VERSION -This document describes MCE::Candy version 1.889 +This document describes MCE::Candy version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Channel.pm b/lib/MCE/Channel.pm index 3693780..14275d3 100644 --- a/lib/MCE/Channel.pm +++ b/lib/MCE/Channel.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (TestingAndDebugging::ProhibitNoStrict) @@ -131,7 +131,7 @@ MCE::Channel - Queue-like and two-way communication capability =head1 VERSION -This document describes MCE::Channel version 1.889 +This document describes MCE::Channel version 1.890 =head1 SYNOPSIS @@ -735,7 +735,7 @@ Mario E. Roy, Smarioeroy AT gmail DOT comE> =head1 COPYRIGHT AND LICENSE -Copyright (C) 2019-2023 by Mario E. Roy +Copyright (C) 2019-2024 by Mario E. Roy MCE::Channel is released under the same license as Perl. diff --git a/lib/MCE/Channel/Mutex.pm b/lib/MCE/Channel/Mutex.pm index 5136c97..f23f876 100644 --- a/lib/MCE/Channel/Mutex.pm +++ b/lib/MCE/Channel/Mutex.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use base 'MCE::Channel'; use MCE::Mutex (); @@ -296,7 +296,7 @@ MCE::Channel::Mutex - Channel for producer(s) and many consumers =head1 VERSION -This document describes MCE::Channel::Mutex version 1.889 +This document describes MCE::Channel::Mutex version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Channel/MutexFast.pm b/lib/MCE/Channel/MutexFast.pm index b1cc56b..b5280c6 100644 --- a/lib/MCE/Channel/MutexFast.pm +++ b/lib/MCE/Channel/MutexFast.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use base 'MCE::Channel'; use MCE::Mutex (); @@ -300,7 +300,7 @@ MCE::Channel::MutexFast - Fast channel for producer(s) and many consumers =head1 VERSION -This document describes MCE::Channel::MutexFast version 1.889 +This document describes MCE::Channel::MutexFast version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Channel/Simple.pm b/lib/MCE/Channel/Simple.pm index fa17548..80d72ce 100644 --- a/lib/MCE/Channel/Simple.pm +++ b/lib/MCE/Channel/Simple.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use base 'MCE::Channel'; @@ -292,7 +292,7 @@ MCE::Channel::Simple - Channel tuned for one producer and one consumer =head1 VERSION -This document describes MCE::Channel::Simple version 1.889 +This document describes MCE::Channel::Simple version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Channel/SimpleFast.pm b/lib/MCE/Channel/SimpleFast.pm index a7cc85f..d719007 100644 --- a/lib/MCE/Channel/SimpleFast.pm +++ b/lib/MCE/Channel/SimpleFast.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use base 'MCE::Channel'; @@ -300,7 +300,7 @@ MCE::Channel::SimpleFast - Fast channel tuned for one producer and one consumer =head1 VERSION -This document describes MCE::Channel::SimpleFast version 1.889 +This document describes MCE::Channel::SimpleFast version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Channel/Threads.pm b/lib/MCE/Channel/Threads.pm index 5d9ea5d..97374e7 100644 --- a/lib/MCE/Channel/Threads.pm +++ b/lib/MCE/Channel/Threads.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use threads; use threads::shared; @@ -315,7 +315,7 @@ MCE::Channel::Threads - Channel for producer(s) and many consumers =head1 VERSION -This document describes MCE::Channel::Threads version 1.889 +This document describes MCE::Channel::Threads version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Channel/ThreadsFast.pm b/lib/MCE/Channel/ThreadsFast.pm index 4ebc4de..3a6b604 100644 --- a/lib/MCE/Channel/ThreadsFast.pm +++ b/lib/MCE/Channel/ThreadsFast.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use threads; use threads::shared; @@ -321,7 +321,7 @@ MCE::Channel::ThreadsFast - Fast channel for producer(s) and many consumers =head1 VERSION -This document describes MCE::Channel::ThreadsFast version 1.889 +This document describes MCE::Channel::ThreadsFast version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Child.pm b/lib/MCE/Child.pm index f0482e9..c3ad0a9 100644 --- a/lib/MCE/Child.pm +++ b/lib/MCE/Child.pm @@ -11,7 +11,7 @@ no warnings qw( threads recursion uninitialized once redefine ); package MCE::Child; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (Subroutines::ProhibitExplicitReturnUndef) @@ -49,6 +49,7 @@ my ( $_MNGD, $_DATA, $_DELY, $_LIST ) = ( {}, {}, {}, {} ); my $_is_MSWin32 = ( $^O eq 'MSWin32' ) ? 1 : 0; my $_tid = ( $INC{'threads.pm'} ) ? threads->tid() : 0; +my $_yield_secs = ( $^O =~ /mswin|mingw|msys|cygwin/i ) ? 0.015 : 0.008; sub CLONE { $_tid = threads->tid(), &_clear() if $INC{'threads.pm'}; @@ -86,8 +87,9 @@ sub init { # max_workers child_timeout posix_exit on_start on_finish void_context # --------------------------------------------------------------------- - my $pkg = "$$.$_tid.".( caller eq __PACKAGE__ ? caller(1) : caller ); - my $mngd = $_MNGD->{$pkg} = ( ref $_[0] eq 'HASH' ) ? shift : { @_ }; + my $opt = ( ref $_[0] eq 'HASH' ) ? shift : { @_ }; + my $pkg = "$$.$_tid.".( delete $opt->{caller} || caller() ); + my $mngd = $_MNGD->{$pkg} = $opt; @_ = (); @@ -155,9 +157,11 @@ sub mce_child (&;@) { } sub create { - my $mngd = $_MNGD->{ "$$.$_tid.".caller() } || do { + my $caller = caller(); + + my $mngd = $_MNGD->{ "$$.$_tid.$caller" } || do { # construct mngd internally on first use unless defined - init(); $_MNGD->{ "$$.$_tid.".caller() }; + init( caller => $caller ); $_MNGD->{ "$$.$_tid.$caller" }; }; shift if ( $_[0] eq __PACKAGE__ ); @@ -170,7 +174,7 @@ sub create { $self->{MGR_ID} = $mngd->{MGR_ID}, $self->{PKG} = $mngd->{PKG}; $self->{ident } = shift if ( !ref $_[0] && ref $_[1] eq 'CODE' ); - my $func = shift; $func = caller().'::'.$func + my $func = shift; $func = $caller.'::'.$func if ( !ref $func && length $func && index($func,':') < 0 ); if ( !defined $func ) { @@ -184,21 +188,23 @@ sub create { $_DATA->{"$pkg:id"} = 10000 if ( ( my $id = ++$_DATA->{"$pkg:id"} ) >= 2e9 ); - { - # Reap completed child processes. - local ($SIG{CHLD}, $!, $?, $_); map { - waitpid($_, 0); _reap_child($list->del($_), 0); (); + # Reap completed child processes. + if ( $self->{IGNORE} || ($max_workers && $list->len() >= $max_workers) ) { + local ($SIG{CHLD}, $!, $?, $_); + map { + $_ = substr($_, 1); # strip leading 'R' + my $child = $list->del($_); + if ( ! $child->{REAPED} ) { + waitpid($child->{WRK_ID}, 0); + _reap_child($child, 0); + } + (); } - $_DATA->{$pkg}->reap_data; + $_DATA->{$pkg}->get_done(); } - if ( $max_workers || $self->{IGNORE} ) { - # Wait for a slot if saturated. - if ( $max_workers && $list->len() >= $max_workers ) { - my $count = $list->len() - $max_workers + 1; - _wait_one($pkg) for 1 .. $count; - } - } + # Wait for a slot if saturated. + _wait_one($pkg) if ( $max_workers && $list->len() >= $max_workers ); # ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ @@ -307,7 +313,8 @@ sub exit { } elsif ( $wrk_id == $$ ) { alarm 0; my ( $exit_status, @res ) = @_; $? = $exit_status || 0; - $_DATA->{$pkg}->set('R'.$wrk_id, @res ? \@res : ''); + $_DATA->{$pkg}->set('R'.$wrk_id, @res ? \@res : '') + unless $self->{IGNORE}; die "Child exited ($?)\n"; _exit($?); # not reached } @@ -315,7 +322,7 @@ sub exit { return $self if $self->{REAPED}; if ( exists $_DATA->{$pkg} ) { - sleep 0.015 until $_DATA->{$pkg}->exists('S'.$wrk_id); + sleep $_yield_secs until $_DATA->{$pkg}->exists('S'.$wrk_id); } else { sleep 0.030; } @@ -441,7 +448,7 @@ sub kill { if ( $self->{MGR_ID} eq "$$.$_tid" ) { return $self if $self->{REAPED}; if ( exists $_DATA->{$pkg} ) { - sleep 0.015 until $_DATA->{$pkg}->exists('S'.$wrk_id); + sleep $_yield_secs until $_DATA->{$pkg}->exists('S'.$wrk_id); } else { sleep 0.030; } @@ -471,9 +478,7 @@ sub list_joinable { my $pkg = "$$.$_tid.".caller(); return () unless ( my $list = $_LIST->{$pkg} ); - local ($!, $?, $_); - - $_DATA->{$pkg}->reap_data; + local ($!, $?, $_); $_DATA->{$pkg}->reap_data; map { ( waitpid($_->{WRK_ID}, _WNOHANG) == 0 ) ? () : do { @@ -489,9 +494,7 @@ sub list_running { my $pkg = "$$.$_tid.".caller(); return () unless ( my $list = $_LIST->{$pkg} ); - local ($!, $?, $_); - - $_DATA->{$pkg}->reap_data; + local ($!, $?, $_); $_DATA->{$pkg}->reap_data; map { ( waitpid($_->{WRK_ID}, _WNOHANG) == 0 ) ? $_ : do { @@ -691,7 +694,7 @@ sub _force_reap { next if $child->{IGNORE}; if ( $child->is_running() ) { - sleep(0.015), CORE::kill('KILL', $child->pid()) + sleep($_yield_secs), CORE::kill('KILL', $child->pid()) if CORE::kill('ZERO', $child->pid()); $count++; } @@ -726,7 +729,7 @@ sub _reap_child { my ( $child, $wait_flag ) = @_; return unless $child; - local @_ = $_DATA->{ $child->{PKG} }->get( $child->{WRK_ID}, $wait_flag ); + local @_ = $_DATA->{ $child->{PKG} }->get($child->{WRK_ID}, $wait_flag); ( $child->{ERROR}, $child->{RESULT}, $child->{REAPED} ) = ( pop || '', length $_[0] ? pop : [], 1 ); @@ -791,7 +794,7 @@ sub _wait_one { $self = $list->del($wrk_id), last if waitpid($wrk_id, _WNOHANG); } last if $self; - sleep 0.030; + sleep $_yield_secs; } _reap_child($self, 0); @@ -856,36 +859,36 @@ use constant { sub new { my ( $class, $chnl ) = @_; - bless [ {}, $chnl ], shift; } sub clear { my ( $self ) = @_; - 1 while ( $self->[1]->recv2_nb() ); - %{ $self->[0] } = (); } sub exists { my ( $self, $key ) = @_; + $self->reap_data; + CORE::exists $self->[0]{ $key }; +} - while ( my $data = $self->[1]->recv2_nb() ) { - $self->[0]{ $data->[0] } = $data->[1]; +sub get_done { + my ( $self ) = @_; + my @ret; + + $self->reap_data; + for my $key (keys %{ $self->[0] }) { + push @ret, $key if ( substr($key, 0, 1) eq 'R' ); } - CORE::exists $self->[0]{ $key }; + return @ret; } sub get { my ( $self, $wrk_id, $wait_flag ) = @_; - - if ( !CORE::exists $self->[0]{ 'R'.$wrk_id } ) { - while ( my $data = $self->[1]->recv2_nb() ) { - $self->[0]{ $data->[0] } = $data->[1]; - } - } + $self->reap_data if ( !CORE::exists $self->[0]{ 'R'.$wrk_id } ); if ( $wait_flag ) { local $!; @@ -899,11 +902,7 @@ sub get { $self->[0]{ $data->[0] } = $data->[1]; waitpid($wrk_id, 0), last if $data->[0] eq 'R'.$wrk_id; } - if ( !CORE::exists $self->[0]{ 'R'.$wrk_id } ) { - while ( my $data = $self->[1]->recv2_nb() ) { - $self->[0]{ $data->[0] } = $data->[1]; - } - } + $self->reap_data if ( !CORE::exists $self->[0]{ 'R'.$wrk_id } ); }; } @@ -919,15 +918,6 @@ sub get { sub reap_data { my ( $self ) = @_; - if (wantarray) { - my @ret; - while ( my $data = $self->[1]->recv2_nb() ) { - push @ret, substr($data->[0], 1) if substr($data->[0], 0, 1) eq 'R'; - $self->[0]{ $data->[0] } = $data->[1]; - } - return @ret; - } - while ( my $data = $self->[1]->recv2_nb() ) { $self->[0]{ $data->[0] } = $data->[1]; } @@ -1007,7 +997,7 @@ MCE::Child - A threads-like parallelization module compatible with Perl 5.8 =head1 VERSION -This document describes MCE::Child version 1.889 +This document describes MCE::Child version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Core.pod b/lib/MCE/Core.pod index ef2e0c6..e7053a6 100644 --- a/lib/MCE/Core.pod +++ b/lib/MCE/Core.pod @@ -5,7 +5,7 @@ MCE::Core - Documentation describing the core MCE API =head1 VERSION -This document describes MCE::Core version 1.889 +This document describes MCE::Core version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Core/Input/Generator.pm b/lib/MCE/Core/Input/Generator.pm index 5eb06ca..d37d3e1 100644 --- a/lib/MCE/Core/Input/Generator.pm +++ b/lib/MCE/Core/Input/Generator.pm @@ -15,7 +15,7 @@ package MCE::Core::Input::Generator; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## Items below are folded into MCE. @@ -220,7 +220,7 @@ MCE::Core::Input::Generator - Sequence of numbers (for task_id > 0) =head1 VERSION -This document describes MCE::Core::Input::Generator version 1.889 +This document describes MCE::Core::Input::Generator version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Core/Input/Handle.pm b/lib/MCE/Core/Input/Handle.pm index cb6ff04..de94368 100644 --- a/lib/MCE/Core/Input/Handle.pm +++ b/lib/MCE/Core/Input/Handle.pm @@ -14,7 +14,7 @@ package MCE::Core::Input::Handle; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## Items below are folded into MCE. @@ -278,7 +278,7 @@ MCE::Core::Input::Handle - File path and Scalar reference input reader =head1 VERSION -This document describes MCE::Core::Input::Handle version 1.889 +This document describes MCE::Core::Input::Handle version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Core/Input/Iterator.pm b/lib/MCE/Core/Input/Iterator.pm index 0734650..2983e0b 100644 --- a/lib/MCE/Core/Input/Iterator.pm +++ b/lib/MCE/Core/Input/Iterator.pm @@ -14,7 +14,7 @@ package MCE::Core::Input::Iterator; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## Items below are folded into MCE. @@ -129,7 +129,7 @@ MCE::Core::Input::Iterator - Iterator reader =head1 VERSION -This document describes MCE::Core::Input::Iterator version 1.889 +This document describes MCE::Core::Input::Iterator version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Core/Input/Request.pm b/lib/MCE/Core/Input/Request.pm index fb4b00b..f9ecf6c 100644 --- a/lib/MCE/Core/Input/Request.pm +++ b/lib/MCE/Core/Input/Request.pm @@ -14,7 +14,7 @@ package MCE::Core::Input::Request; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## Items below are folded into MCE. @@ -200,7 +200,7 @@ MCE::Core::Input::Request - Array reference and Glob reference input reader =head1 VERSION -This document describes MCE::Core::Input::Request version 1.889 +This document describes MCE::Core::Input::Request version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Core/Input/Sequence.pm b/lib/MCE/Core/Input/Sequence.pm index 7955709..4681021 100644 --- a/lib/MCE/Core/Input/Sequence.pm +++ b/lib/MCE/Core/Input/Sequence.pm @@ -14,7 +14,7 @@ package MCE::Core::Input::Sequence; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## Items below are folded into MCE. @@ -229,7 +229,7 @@ MCE::Core::Input::Sequence - Sequence of numbers (for task_id == 0) =head1 VERSION -This document describes MCE::Core::Input::Sequence version 1.889 +This document describes MCE::Core::Input::Sequence version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Core/Manager.pm b/lib/MCE/Core/Manager.pm index 7c40b17..4310cec 100644 --- a/lib/MCE/Core/Manager.pm +++ b/lib/MCE/Core/Manager.pm @@ -14,7 +14,7 @@ package MCE::Core::Manager; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (TestingAndDebugging::ProhibitNoStrict) @@ -1041,7 +1041,7 @@ MCE::Core::Manager - Core methods for the manager process =head1 VERSION -This document describes MCE::Core::Manager version 1.889 +This document describes MCE::Core::Manager version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Core/Validation.pm b/lib/MCE/Core/Validation.pm index 3a0b816..305364d 100644 --- a/lib/MCE/Core/Validation.pm +++ b/lib/MCE/Core/Validation.pm @@ -14,7 +14,7 @@ package MCE::Core::Validation; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## Items below are folded into MCE. @@ -402,7 +402,7 @@ MCE::Core::Validation - Core validation methods for Many-Core Engine =head1 VERSION -This document describes MCE::Core::Validation version 1.889 +This document describes MCE::Core::Validation version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Core/Worker.pm b/lib/MCE/Core/Worker.pm index 8562fbd..5e732d9 100644 --- a/lib/MCE/Core/Worker.pm +++ b/lib/MCE/Core/Worker.pm @@ -14,7 +14,7 @@ package MCE::Core::Worker; use strict; use warnings; -our $VERSION = '1.889'; +our $VERSION = '1.890'; my $_tid = $INC{'threads.pm'} ? threads->tid() : 0; @@ -738,7 +738,7 @@ MCE::Core::Worker - Core methods for the worker process =head1 VERSION -This document describes MCE::Core::Worker version 1.889 +This document describes MCE::Core::Worker version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Examples.pod b/lib/MCE/Examples.pod index 2d8e2d7..b9bf808 100644 --- a/lib/MCE/Examples.pod +++ b/lib/MCE/Examples.pod @@ -5,7 +5,7 @@ MCE::Examples - Various examples and demonstrations =head1 VERSION -This document describes MCE::Examples version 1.889 +This document describes MCE::Examples version 1.890 =head1 INCLUDED WITH THE DISTRIBUTION diff --git a/lib/MCE/Flow.pm b/lib/MCE/Flow.pm index e5c6330..0c276fc 100644 --- a/lib/MCE/Flow.pm +++ b/lib/MCE/Flow.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (Subroutines::ProhibitSubroutinePrototypes) @@ -482,7 +482,7 @@ MCE::Flow - Parallel flow model for building creative applications =head1 VERSION -This document describes MCE::Flow version 1.889 +This document describes MCE::Flow version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Grep.pm b/lib/MCE/Grep.pm index 37b6461..ef98bca 100644 --- a/lib/MCE/Grep.pm +++ b/lib/MCE/Grep.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (Subroutines::ProhibitSubroutinePrototypes) @@ -453,7 +453,7 @@ MCE::Grep - Parallel grep model similar to the native grep function =head1 VERSION -This document describes MCE::Grep version 1.889 +This document describes MCE::Grep version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Loop.pm b/lib/MCE/Loop.pm index 59e5342..800a192 100644 --- a/lib/MCE/Loop.pm +++ b/lib/MCE/Loop.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (Subroutines::ProhibitSubroutinePrototypes) @@ -364,7 +364,7 @@ MCE::Loop - MCE model for building parallel loops =head1 VERSION -This document describes MCE::Loop version 1.889 +This document describes MCE::Loop version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Map.pm b/lib/MCE/Map.pm index b3e62fe..415d91b 100644 --- a/lib/MCE/Map.pm +++ b/lib/MCE/Map.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (Subroutines::ProhibitSubroutinePrototypes) @@ -453,7 +453,7 @@ MCE::Map - Parallel map model similar to the native map function =head1 VERSION -This document describes MCE::Map version 1.889 +This document describes MCE::Map version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Mutex.pm b/lib/MCE/Mutex.pm index 3a937e5..36bc21b 100644 --- a/lib/MCE/Mutex.pm +++ b/lib/MCE/Mutex.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (TestingAndDebugging::ProhibitNoStrict) @@ -64,7 +64,7 @@ MCE::Mutex - Locking for Many-Core Engine =head1 VERSION -This document describes MCE::Mutex version 1.889 +This document describes MCE::Mutex version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Mutex/Channel.pm b/lib/MCE/Mutex/Channel.pm index 80fa9c5..51bf3ac 100644 --- a/lib/MCE/Mutex/Channel.pm +++ b/lib/MCE/Mutex/Channel.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use if $^O eq 'MSWin32', 'threads'; use if $^O eq 'MSWin32', 'threads::shared'; @@ -187,7 +187,7 @@ MCE::Mutex::Channel - Mutex locking via a pipe or socket =head1 VERSION -This document describes MCE::Mutex::Channel version 1.889 +This document describes MCE::Mutex::Channel version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Mutex/Channel2.pm b/lib/MCE/Mutex/Channel2.pm index f72fe0c..1b59b7d 100644 --- a/lib/MCE/Mutex/Channel2.pm +++ b/lib/MCE/Mutex/Channel2.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use if $^O eq 'MSWin32', 'threads'; use if $^O eq 'MSWin32', 'threads::shared'; @@ -154,7 +154,7 @@ MCE::Mutex::Channel2 - Provides two mutexes using a single channel =head1 VERSION -This document describes MCE::Mutex::Channel2 version 1.889 +This document describes MCE::Mutex::Channel2 version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Mutex/Flock.pm b/lib/MCE/Mutex/Flock.pm index 47121d6..e23d600 100644 --- a/lib/MCE/Mutex/Flock.pm +++ b/lib/MCE/Mutex/Flock.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; use base 'MCE::Mutex'; use Fcntl ':flock'; @@ -211,7 +211,7 @@ MCE::Mutex::Flock - Mutex locking via Fcntl =head1 VERSION -This document describes MCE::Mutex::Flock version 1.889 +This document describes MCE::Mutex::Flock version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Queue.pm b/lib/MCE/Queue.pm index c7f88f4..0e1727e 100644 --- a/lib/MCE/Queue.pm +++ b/lib/MCE/Queue.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (Subroutines::ProhibitExplicitReturnUndef) ## no critic (TestingAndDebugging::ProhibitNoStrict) @@ -1506,7 +1506,7 @@ MCE::Queue - Hybrid (normal and priority) queues =head1 VERSION -This document describes MCE::Queue version 1.889 +This document describes MCE::Queue version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Relay.pm b/lib/MCE/Relay.pm index 531f77f..e5afd7d 100644 --- a/lib/MCE/Relay.pm +++ b/lib/MCE/Relay.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized numeric ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (Subroutines::ProhibitSubroutinePrototypes) @@ -368,7 +368,7 @@ MCE::Relay - Extends Many-Core Engine with relay capabilities =head1 VERSION -This document describes MCE::Relay version 1.889 +This document describes MCE::Relay version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Signal.pm b/lib/MCE/Signal.pm index 8c75ae3..9fe89a9 100644 --- a/lib/MCE/Signal.pm +++ b/lib/MCE/Signal.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized once ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) @@ -445,7 +445,7 @@ MCE::Signal - Temporary directory creation/cleanup and signal handling =head1 VERSION -This document describes MCE::Signal version 1.889 +This document describes MCE::Signal version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Step.pm b/lib/MCE/Step.pm index e34e2f5..7f749fa 100644 --- a/lib/MCE/Step.pm +++ b/lib/MCE/Step.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (Subroutines::ProhibitSubroutinePrototypes) @@ -700,7 +700,7 @@ MCE::Step - Parallel step model for building creative steps =head1 VERSION -This document describes MCE::Step version 1.889 +This document describes MCE::Step version 1.890 =head1 DESCRIPTION diff --git a/lib/MCE/Stream.pm b/lib/MCE/Stream.pm index 19ecd31..23fea7c 100644 --- a/lib/MCE/Stream.pm +++ b/lib/MCE/Stream.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) ## no critic (Subroutines::ProhibitSubroutinePrototypes) @@ -678,7 +678,7 @@ MCE::Stream - Parallel stream model for chaining multiple maps and greps =head1 VERSION -This document describes MCE::Stream version 1.889 +This document describes MCE::Stream version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Subs.pm b/lib/MCE/Subs.pm index 7326198..e056b99 100644 --- a/lib/MCE/Subs.pm +++ b/lib/MCE/Subs.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (Subroutines::ProhibitSubroutinePrototypes) ## no critic (TestingAndDebugging::ProhibitNoStrict) @@ -204,7 +204,7 @@ MCE::Subs - Exports functions mapped directly to MCE methods =head1 VERSION -This document describes MCE::Subs version 1.889 +This document describes MCE::Subs version 1.890 =head1 SYNOPSIS diff --git a/lib/MCE/Util.pm b/lib/MCE/Util.pm index 22c2ba6..d84ef54 100644 --- a/lib/MCE/Util.pm +++ b/lib/MCE/Util.pm @@ -11,7 +11,7 @@ use warnings; no warnings qw( threads recursion uninitialized numeric ); -our $VERSION = '1.889'; +our $VERSION = '1.890'; ## no critic (BuiltinFunctions::ProhibitStringyEval) @@ -435,7 +435,7 @@ MCE::Util - Utility functions =head1 VERSION -This document describes MCE::Util version 1.889 +This document describes MCE::Util version 1.890 =head1 SYNOPSIS -- cgit v1.2.3