summaryrefslogtreecommitdiff
path: root/lib/MCE
diff options
context:
space:
mode:
Diffstat (limited to 'lib/MCE')
-rw-r--r--lib/MCE/Candy.pm4
-rw-r--r--lib/MCE/Channel.pm21
-rw-r--r--lib/MCE/Channel/Mutex.pm23
-rw-r--r--lib/MCE/Channel/Simple.pm4
-rw-r--r--lib/MCE/Channel/Threads.pm37
-rw-r--r--lib/MCE/Child.pm6
-rw-r--r--lib/MCE/Core.pod2
-rw-r--r--lib/MCE/Core/Input/Generator.pm4
-rw-r--r--lib/MCE/Core/Input/Handle.pm4
-rw-r--r--lib/MCE/Core/Input/Iterator.pm4
-rw-r--r--lib/MCE/Core/Input/Request.pm4
-rw-r--r--lib/MCE/Core/Input/Sequence.pm4
-rw-r--r--lib/MCE/Core/Manager.pm4
-rw-r--r--lib/MCE/Core/Validation.pm4
-rw-r--r--lib/MCE/Core/Worker.pm4
-rw-r--r--lib/MCE/Examples.pod2
-rw-r--r--lib/MCE/Flow.pm4
-rw-r--r--lib/MCE/Grep.pm4
-rw-r--r--lib/MCE/Loop.pm4
-rw-r--r--lib/MCE/Map.pm4
-rw-r--r--lib/MCE/Mutex.pm4
-rw-r--r--lib/MCE/Mutex/Channel.pm4
-rw-r--r--lib/MCE/Mutex/Channel2.pm4
-rw-r--r--lib/MCE/Mutex/Flock.pm4
-rw-r--r--lib/MCE/Queue.pm4
-rw-r--r--lib/MCE/Relay.pm4
-rw-r--r--lib/MCE/Signal.pm10
-rw-r--r--lib/MCE/Step.pm4
-rw-r--r--lib/MCE/Stream.pm4
-rw-r--r--lib/MCE/Subs.pm4
-rw-r--r--lib/MCE/Util.pm4
31 files changed, 99 insertions, 98 deletions
diff --git a/lib/MCE/Candy.pm b/lib/MCE/Candy.pm
index 5da76a5..6c44fac 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.864';
+our $VERSION = '1.865';
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.864
+This document describes MCE::Candy version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Channel.pm b/lib/MCE/Channel.pm
index 69a0b7c..a42ecf5 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (TestingAndDebugging::ProhibitNoStrict)
@@ -76,7 +76,7 @@ sub DESTROY {
my ( $pid, $self ) = ( $tid ? $$ .'.'. $tid : $$, @_ );
if ( $self->{'init_pid'} && $self->{'init_pid'} eq $pid ) {
- MCE::Util::_destroy_socks( $self, qw(c_sock p_sock) );
+ MCE::Util::_destroy_socks($self, qw(c_sock c2_sock p_sock p2_sock));
delete($self->{c_mutex}), delete($self->{p_mutex});
}
@@ -128,7 +128,7 @@ MCE::Channel - Queue-like and two-way communication capability
=head1 VERSION
-This document describes MCE::Channel version 1.864
+This document describes MCE::Channel version 1.865
=head1 SYNOPSIS
@@ -212,18 +212,21 @@ both ends of the C<channel> support many workers concurrently (with mp => 1).
=head2 new ( impl => STRING, mp => BOOLEAN )
-This creates a new channel. Three implementations are provided C<Mutex> (default),
-C<Threads>, and C<Simple> indicating the locking mechanism to use C<MCE::Mutex>,
-C<threads::shared>, and no locking respectively.
+This creates a new channel. Three implementations are provided C<Mutex>,
+C<Threads>, and C<Simple> indicating the locking mechanism to use
+C<MCE::Mutex>, C<threads::shared>, and no locking respectively.
$chnl = MCE::Channel->new(); # default: impl => 'Mutex', mp => 0
+ # default: impl => 'Threads' on Windows
-The C<Mutex> channel implementation supports processes and threads whereas the
-C<Threads> channel implementation is suited for threads only.
+The C<Mutex> implementation supports processes and threads whereas the
+C<Threads> implementation is suited for Windows and threads only.
$chnl = MCE::Channel->new( impl => 'Mutex' ); # MCE::Mutex locking
$chnl = MCE::Channel->new( impl => 'Threads' ); # threads::shared locking
+ # on Windows, silently becomes impl => 'Threads' when specifying 'Mutex'
+
Set the C<mp> (m)any (p)roducers option to a true value if there will be two
or more workers calling C<enqueue>, <send>, C<recv2>, or C<recv2_nb> on the
left end of the channel. This is important to not incur a race condition.
@@ -231,6 +234,8 @@ left end of the channel. This is important to not incur a race condition.
$chnl = MCE::Channel->new( impl => 'Mutex', mp => 1 );
$chnl = MCE::Channel->new( impl => 'Threads', mp => 1 );
+ # on Windows, silently becomes impl => 'Threads' when specifying 'Mutex'
+
The C<Simple> implementation is optimized for one producer and one consumer max.
It omits locking for maximum performance. This implementation is preferred for
parent to child communication not shared by another worker.
diff --git a/lib/MCE/Channel/Mutex.pm b/lib/MCE/Channel/Mutex.pm
index e8d5a50..4894a0b 100644
--- a/lib/MCE/Channel/Mutex.pm
+++ b/lib/MCE/Channel/Mutex.pm
@@ -11,14 +11,13 @@ use warnings;
no warnings qw( uninitialized once );
-our $VERSION = '1.864';
+our $VERSION = '1.865';
use base 'MCE::Channel';
use MCE::Mutex ();
use bytes;
my $LF = "\012"; Internals::SvREADONLY($LF, 1);
-my $is_MSWin32 = ( $^O eq 'MSWin32' ) ? 1 : 0;
my $freeze = MCE::Channel::_get_freeze();
my $thaw = MCE::Channel::_get_thaw();
@@ -53,7 +52,6 @@ sub end {
return if $self->{ended};
local $\ = undef if (defined $\);
- MCE::Util::_sock_ready_w( $self->{p_sock} ) if $is_MSWin32;
print { $self->{p_sock} } pack('i', -1);
$self->{ended} = 1;
@@ -67,8 +65,6 @@ sub enqueue {
my $p_mutex = $self->{p_mutex};
$p_mutex->lock2 if $p_mutex;
- MCE::Util::_sock_ready_w( $self->{p_sock} ) if $is_MSWin32;
-
while ( @_ ) {
my $data;
if ( ref $_[0] || !defined $_[0] ) {
@@ -90,7 +86,6 @@ sub dequeue {
if ( $count == 1 ) {
( my $c_mutex = $self->{c_mutex} )->lock;
- MCE::Util::_sock_ready( $self->{c_sock} ) if $is_MSWin32;
MCE::Util::_sysread( $self->{c_sock}, my($plen), 4 );
my $len = unpack('i', $plen);
@@ -110,7 +105,6 @@ sub dequeue {
my ( $plen, @ret );
( my $c_mutex = $self->{c_mutex} )->lock;
- MCE::Util::_sock_ready( $self->{c_sock} ) if $is_MSWin32;
while ( $count-- ) {
MCE::Util::_sysread( $self->{c_sock}, $plen, 4 );
@@ -179,7 +173,6 @@ sub send {
my $p_mutex = $self->{p_mutex};
$p_mutex->lock2 if $p_mutex;
- MCE::Util::_sock_ready_w( $self->{p_sock} ) if $is_MSWin32;
print { $self->{p_sock} } pack('i', length $data), $data;
$p_mutex->unlock2 if $p_mutex;
@@ -190,7 +183,6 @@ sub recv {
my ( $self ) = @_;
( my $c_mutex = $self->{c_mutex} )->lock;
- MCE::Util::_sock_ready( $self->{c_sock} ) if $is_MSWin32;
MCE::Util::_sysread( $self->{c_sock}, my($plen), 4 );
my $len = unpack('i', $plen);
@@ -253,7 +245,6 @@ sub send2 {
local $MCE::Signal::IPC = 1;
( my $c_mutex = $self->{c_mutex} )->lock2;
- MCE::Util::_sock_ready_w( $self->{c_sock} ) if $is_MSWin32;
print { $self->{c_sock} } pack('i', length $data), $data;
$c_mutex->unlock2;
}
@@ -271,15 +262,13 @@ sub recv2 {
my $p_mutex = $self->{p_mutex};
$p_mutex->lock if $p_mutex;
- MCE::Util::_sock_ready( $self->{p_sock} ) if $is_MSWin32;
-
- ( $p_mutex || $is_MSWin32 )
+ ( $p_mutex )
? MCE::Util::_sysread( $self->{p_sock}, $plen, 4 )
: read( $self->{p_sock}, $plen, 4 );
my $len = unpack('i', $plen);
- ( $p_mutex || $is_MSWin32 )
+ ( $p_mutex )
? MCE::Channel::_read( $self->{p_sock}, $data, $len )
: read( $self->{p_sock}, $data, $len );
@@ -300,7 +289,7 @@ sub recv2_nb {
MCE::Util::_nonblocking( $self->{p_sock}, 1 );
- ( $p_mutex || $is_MSWin32 )
+ ( $p_mutex )
? MCE::Util::_sysread( $self->{p_sock}, $plen, 4 )
: read( $self->{p_sock}, $plen, 4 );
@@ -312,7 +301,7 @@ sub recv2_nb {
return wantarray ? () : undef;
}
- ( $p_mutex || $is_MSWin32 )
+ ( $p_mutex )
? MCE::Channel::_read( $self->{p_sock}, $data, $len )
: read( $self->{p_sock}, $data, $len );
@@ -339,7 +328,7 @@ MCE::Channel::Mutex - Channel for producer(s) and many consumers
=head1 VERSION
-This document describes MCE::Channel::Mutex version 1.864
+This document describes MCE::Channel::Mutex version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Channel/Simple.pm b/lib/MCE/Channel/Simple.pm
index 7464bfc..49c85ee 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.864';
+our $VERSION = '1.865';
use base 'MCE::Channel';
use bytes;
@@ -328,7 +328,7 @@ MCE::Channel::Simple - Channel tuned for one producer and one consumer
=head1 VERSION
-This document describes MCE::Channel::Simple version 1.864
+This document describes MCE::Channel::Simple version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Channel/Threads.pm b/lib/MCE/Channel/Threads.pm
index 14da43f..45703b4 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.864';
+our $VERSION = '1.865';
use threads;
use threads::shared;
@@ -29,6 +29,7 @@ sub new {
$obj{init_pid} = MCE::Channel::_pid();
MCE::Util::_sock_pair( \%obj, 'p_sock', 'c_sock' );
+ MCE::Util::_sock_pair( \%obj, 'p2_sock', 'c2_sock' ) if $is_MSWin32;
# locking for the consumer side of the channel
$obj{cr_mutex} = threads::shared::share( my $cr_mutex );
@@ -255,11 +256,13 @@ sub send2 {
local $MCE::Signal::SIG;
{
+ my $c_sock = $self->{c2_sock} || $self->{c_sock};
+
local $MCE::Signal::IPC = 1;
CORE::lock $self->{cw_mutex};
- MCE::Util::_sock_ready_w( $self->{c_sock} ) if $is_MSWin32;
- print { $self->{c_sock} } pack('i', length $data), $data;
+ MCE::Util::_sock_ready_w( $c_sock ) if $is_MSWin32;
+ print { $c_sock } pack('i', length $data), $data;
}
CORE::kill($MCE::Signal::SIG, $$) if $MCE::Signal::SIG;
@@ -274,19 +277,21 @@ sub recv2 {
local $/ = $LF if ( $/ ne $LF );
{
+ my $p_sock = $self->{p2_sock} || $self->{p_sock};
my $pr_mutex = $self->{pr_mutex};
+
CORE::lock $pr_mutex if $pr_mutex;
- MCE::Util::_sock_ready( $self->{p_sock} ) if $is_MSWin32;
+ MCE::Util::_sock_ready( $p_sock ) if $is_MSWin32;
( $pr_mutex || $is_MSWin32 )
- ? MCE::Util::_sysread( $self->{p_sock}, $plen, 4 )
- : read( $self->{p_sock}, $plen, 4 );
+ ? MCE::Util::_sysread( $p_sock, $plen, 4 )
+ : read( $p_sock, $plen, 4 );
my $len = unpack('i', $plen);
( $pr_mutex || $is_MSWin32 )
- ? MCE::Channel::_read( $self->{p_sock}, $data, $len )
- : read( $self->{p_sock}, $data, $len );
+ ? MCE::Channel::_read( $p_sock, $data, $len )
+ : read( $p_sock, $data, $len );
}
chop( $data )
@@ -301,23 +306,25 @@ sub recv2_nb {
local $/ = $LF if ( $/ ne $LF );
{
+ my $p_sock = $self->{p2_sock} || $self->{p_sock};
my $pr_mutex = $self->{pr_mutex};
+
CORE::lock $pr_mutex if $pr_mutex;
- MCE::Util::_nonblocking( $self->{p_sock}, 1 );
+ MCE::Util::_nonblocking( $p_sock, 1 );
( $pr_mutex || $is_MSWin32 )
- ? MCE::Util::_sysread( $self->{p_sock}, $plen, 4 )
- : read( $self->{p_sock}, $plen, 4 );
+ ? MCE::Util::_sysread( $p_sock, $plen, 4 )
+ : read( $p_sock, $plen, 4 );
- MCE::Util::_nonblocking( $self->{p_sock}, 0 );
+ MCE::Util::_nonblocking( $p_sock, 0 );
my $len; $len = unpack('i', $plen) if $plen;
return wantarray ? () : undef unless $len;
( $pr_mutex || $is_MSWin32 )
- ? MCE::Channel::_read( $self->{p_sock}, $data, $len )
- : read( $self->{p_sock}, $data, $len );
+ ? MCE::Channel::_read( $p_sock, $data, $len )
+ : read( $p_sock, $data, $len );
}
chop( $data )
@@ -341,7 +348,7 @@ MCE::Channel::Threads - Channel for producer(s) and many consumers
=head1 VERSION
-This document describes MCE::Channel::Threads version 1.864
+This document describes MCE::Channel::Threads version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Child.pm b/lib/MCE/Child.pm
index d8d2bf6..ee4e14a 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (Subroutines::ProhibitExplicitReturnUndef)
@@ -972,7 +972,7 @@ MCE::Child - A threads-like parallelization module compatible with Perl 5.8
=head1 VERSION
-This document describes MCE::Child version 1.864
+This document describes MCE::Child version 1.865
=head1 SYNOPSIS
@@ -1565,7 +1565,7 @@ similarly to MCE's interval option. It throttles workers from running too fast.
A demonstration is provided in the next section for fetching URLs in parallel.
The default C<floating_seconds> is 0.008 and 0.015 on UNIX and Windows,
-respectively. Pass 0 if you want to give other workers a chance to run.
+respectively. Pass 0 if simply wanting to give other workers a chance to run.
# total run time: 1.00 second
diff --git a/lib/MCE/Core.pod b/lib/MCE/Core.pod
index bfaca24..bd77810 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.864
+This document describes MCE::Core version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Core/Input/Generator.pm b/lib/MCE/Core/Input/Generator.pm
index bf8752c..645c204 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.864';
+our $VERSION = '1.865';
## 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.864
+This document describes MCE::Core::Input::Generator version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Core/Input/Handle.pm b/lib/MCE/Core/Input/Handle.pm
index 90f712d..a002477 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.864';
+our $VERSION = '1.865';
## Items below are folded into MCE.
@@ -282,7 +282,7 @@ MCE::Core::Input::Handle - File path and Scalar reference input reader
=head1 VERSION
-This document describes MCE::Core::Input::Handle version 1.864
+This document describes MCE::Core::Input::Handle version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Core/Input/Iterator.pm b/lib/MCE/Core/Input/Iterator.pm
index 205bbc4..b22b1fe 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.864';
+our $VERSION = '1.865';
## Items below are folded into MCE.
@@ -137,7 +137,7 @@ MCE::Core::Input::Iterator - Iterator reader
=head1 VERSION
-This document describes MCE::Core::Input::Iterator version 1.864
+This document describes MCE::Core::Input::Iterator version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Core/Input/Request.pm b/lib/MCE/Core/Input/Request.pm
index 96cc348..4df6d02 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.864';
+our $VERSION = '1.865';
## Items below are folded into MCE.
@@ -206,7 +206,7 @@ MCE::Core::Input::Request - Array reference and Glob reference input reader
=head1 VERSION
-This document describes MCE::Core::Input::Request version 1.864
+This document describes MCE::Core::Input::Request version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Core/Input/Sequence.pm b/lib/MCE/Core/Input/Sequence.pm
index 9da0e8f..e9c04f3 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.864';
+our $VERSION = '1.865';
## Items below are folded into MCE.
@@ -231,7 +231,7 @@ MCE::Core::Input::Sequence - Sequence of numbers (for task_id == 0)
=head1 VERSION
-This document describes MCE::Core::Input::Sequence version 1.864
+This document describes MCE::Core::Input::Sequence version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Core/Manager.pm b/lib/MCE/Core/Manager.pm
index 2ba8ee4..a94911f 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.864';
+our $VERSION = '1.865';
## 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.864
+This document describes MCE::Core::Manager version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Core/Validation.pm b/lib/MCE/Core/Validation.pm
index 9be9542..967dfb3 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.864';
+our $VERSION = '1.865';
## Items below are folded into MCE.
@@ -391,7 +391,7 @@ MCE::Core::Validation - Core validation methods for Many-Core Engine
=head1 VERSION
-This document describes MCE::Core::Validation version 1.864
+This document describes MCE::Core::Validation version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Core/Worker.pm b/lib/MCE/Core/Worker.pm
index 4ff46a7..e2030e6 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.864';
+our $VERSION = '1.865';
my $_tid = $INC{'threads.pm'} ? threads->tid() : 0;
@@ -744,7 +744,7 @@ MCE::Core::Worker - Core methods for the worker process
=head1 VERSION
-This document describes MCE::Core::Worker version 1.864
+This document describes MCE::Core::Worker version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Examples.pod b/lib/MCE/Examples.pod
index e26483a..cd9134e 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.864
+This document describes MCE::Examples version 1.865
=head1 INCLUDED WITH THE DISTRIBUTION
diff --git a/lib/MCE/Flow.pm b/lib/MCE/Flow.pm
index 9c2d299..140cb3e 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (Subroutines::ProhibitSubroutinePrototypes)
@@ -479,7 +479,7 @@ MCE::Flow - Parallel flow model for building creative applications
=head1 VERSION
-This document describes MCE::Flow version 1.864
+This document describes MCE::Flow version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Grep.pm b/lib/MCE/Grep.pm
index c13f7e7..24b51ac 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (Subroutines::ProhibitSubroutinePrototypes)
@@ -434,7 +434,7 @@ MCE::Grep - Parallel grep model similar to the native grep function
=head1 VERSION
-This document describes MCE::Grep version 1.864
+This document describes MCE::Grep version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Loop.pm b/lib/MCE/Loop.pm
index b2b29b3..bd35150 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (Subroutines::ProhibitSubroutinePrototypes)
@@ -349,7 +349,7 @@ MCE::Loop - MCE model for building parallel loops
=head1 VERSION
-This document describes MCE::Loop version 1.864
+This document describes MCE::Loop version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Map.pm b/lib/MCE/Map.pm
index 261d470..6e9853e 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (Subroutines::ProhibitSubroutinePrototypes)
@@ -434,7 +434,7 @@ MCE::Map - Parallel map model similar to the native map function
=head1 VERSION
-This document describes MCE::Map version 1.864
+This document describes MCE::Map version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Mutex.pm b/lib/MCE/Mutex.pm
index 8de164b..43c4ce0 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (TestingAndDebugging::ProhibitNoStrict)
@@ -76,7 +76,7 @@ MCE::Mutex - Locking for Many-Core Engine
=head1 VERSION
-This document describes MCE::Mutex version 1.864
+This document describes MCE::Mutex version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Mutex/Channel.pm b/lib/MCE/Mutex/Channel.pm
index c438f9a..7e54a7f 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.864';
+our $VERSION = '1.865';
use base 'MCE::Mutex';
use Scalar::Util qw(refaddr weaken);
@@ -139,7 +139,7 @@ MCE::Mutex::Channel - Mutex locking via a pipe or socket
=head1 VERSION
-This document describes MCE::Mutex::Channel version 1.864
+This document describes MCE::Mutex::Channel version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Mutex/Channel2.pm b/lib/MCE/Mutex/Channel2.pm
index a18e329..9cdc0aa 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.864';
+our $VERSION = '1.865';
use base 'MCE::Mutex::Channel';
use MCE::Util ();
@@ -114,7 +114,7 @@ MCE::Mutex::Channel2 - Provides two mutexes using a single channel
=head1 VERSION
-This document describes MCE::Mutex::Channel2 version 1.864
+This document describes MCE::Mutex::Channel2 version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Mutex/Flock.pm b/lib/MCE/Mutex/Flock.pm
index 7fe810a..81b3b37 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.864';
+our $VERSION = '1.865';
use base 'MCE::Mutex';
use Fcntl ':flock';
@@ -181,7 +181,7 @@ MCE::Mutex::Flock - Mutex locking via Fcntl
=head1 VERSION
-This document describes MCE::Mutex::Flock version 1.864
+This document describes MCE::Mutex::Flock version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Queue.pm b/lib/MCE/Queue.pm
index b062d1d..0c523da 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.864';
+our $VERSION = '1.865';
## no critic (Subroutines::ProhibitExplicitReturnUndef)
## no critic (TestingAndDebugging::ProhibitNoStrict)
@@ -1601,7 +1601,7 @@ MCE::Queue - Hybrid (normal and priority) queues
=head1 VERSION
-This document describes MCE::Queue version 1.864
+This document describes MCE::Queue version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Relay.pm b/lib/MCE/Relay.pm
index efbd767..8b6c4aa 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.864';
+our $VERSION = '1.865';
## no critic (Subroutines::ProhibitSubroutinePrototypes)
@@ -370,7 +370,7 @@ MCE::Relay - Extends Many-Core Engine with relay capabilities
=head1 VERSION
-This document describes MCE::Relay version 1.864
+This document describes MCE::Relay version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Signal.pm b/lib/MCE/Signal.pm
index fcba216..24937e1 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
@@ -206,10 +206,10 @@ sub stop_and_exit {
$SIG{__DIE__} = $SIG{__WARN__} = sub {};
if (exists $_sig_name_lkup{$_sig_name}) {
- $SIG{INT} = $SIG{$_sig_name} = sub {};
$_exit_status = $MCE::Signal::KILLED = $_is_sig = 1;
- $_exit_status = 255 if ($_sig_name eq '__DIE__');
- $_exit_status = 0 if ($_sig_name eq 'PIPE');
+ $_exit_status = 255, $_sig_name = 'TERM' if ($_sig_name eq '__DIE__');
+ $_exit_status = 0 if ($_sig_name eq 'PIPE');
+ $SIG{INT} = $SIG{$_sig_name} = sub {};
}
else {
$_exit_status = $_sig_name if ($_sig_name =~ /^\d+$/);
@@ -438,7 +438,7 @@ MCE::Signal - Temporary directory creation/cleanup and signal handling
=head1 VERSION
-This document describes MCE::Signal version 1.864
+This document describes MCE::Signal version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Step.pm b/lib/MCE/Step.pm
index e964e33..c830b67 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (Subroutines::ProhibitSubroutinePrototypes)
@@ -715,7 +715,7 @@ MCE::Step - Parallel step model for building creative steps
=head1 VERSION
-This document describes MCE::Step version 1.864
+This document describes MCE::Step version 1.865
=head1 DESCRIPTION
diff --git a/lib/MCE/Stream.pm b/lib/MCE/Stream.pm
index 3903557..b2473f9 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
## no critic (Subroutines::ProhibitSubroutinePrototypes)
@@ -671,7 +671,7 @@ MCE::Stream - Parallel stream model for chaining multiple maps and greps
=head1 VERSION
-This document describes MCE::Stream version 1.864
+This document describes MCE::Stream version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Subs.pm b/lib/MCE/Subs.pm
index 8392f07..48bb6a1 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.864';
+our $VERSION = '1.865';
## 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.864
+This document describes MCE::Subs version 1.865
=head1 SYNOPSIS
diff --git a/lib/MCE/Util.pm b/lib/MCE/Util.pm
index f312921..d1fc0f5 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.864';
+our $VERSION = '1.865';
## no critic (BuiltinFunctions::ProhibitStringyEval)
@@ -410,7 +410,7 @@ MCE::Util - Utility functions
=head1 VERSION
-This document describes MCE::Util version 1.864
+This document describes MCE::Util version 1.865
=head1 SYNOPSIS