summaryrefslogtreecommitdiff
path: root/lib/MCE/Mutex/Channel2.pm
diff options
context:
space:
mode:
authorgregor herrmann <gregoa@debian.org>2020-05-12 18:07:03 +0200
committergregor herrmann <gregoa@debian.org>2020-05-12 18:07:03 +0200
commita3e9e0bb0df12b7961cf6c2f99bec86f47add67e (patch)
tree7426f64763f5054fccb35bbdb80f89455ec7f608 /lib/MCE/Mutex/Channel2.pm
parent3f754067cb0fc74935e05a9769c2fc15ca511708 (diff)
New upstream version 1.868
Diffstat (limited to 'lib/MCE/Mutex/Channel2.pm')
-rw-r--r--lib/MCE/Mutex/Channel2.pm20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/MCE/Mutex/Channel2.pm b/lib/MCE/Mutex/Channel2.pm
index 0f51f14..e0c8830 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.866';
+our $VERSION = '1.868';
use base 'MCE::Mutex::Channel';
use MCE::Util ();
@@ -32,7 +32,7 @@ sub new {
my ($class, %obj) = (@_, impl => 'Channel2');
$obj{'_init_pid'} = $tid ? $$ .'.'. $tid : $$;
- MCE::Util::_sock_pair(\%obj, qw(_r_sock _w_sock));
+ MCE::Util::_sock_pair(\%obj, qw(_r_sock _w_sock), undef, 1);
syswrite $obj{_r_sock}, '0';
syswrite $obj{_w_sock}, '0';
@@ -47,7 +47,7 @@ sub new {
}
sub lock2 {
- my ($pid, $obj) = ($tid ? $$ .'.'. $tid : $$, @_);
+ my ($pid, $obj) = ($tid ? $$ .'.'. $tid : $$, shift);
MCE::Util::_sysread($obj->{_w_sock}, my($b), 1), $obj->{ $pid.'b' } = 1
unless $obj->{ $pid.'b' };
@@ -59,27 +59,29 @@ sub lock2 {
*lock_shared2 = \&lock2;
sub unlock2 {
- my ($pid, $obj) = ($tid ? $$ .'.'. $tid : $$, @_);
+ my ($pid, $obj) = ($tid ? $$ .'.'. $tid : $$, shift);
- syswrite($obj->{_r_sock}, '0'), $obj->{ $pid.'b' } = 0
+ CORE::syswrite($obj->{_r_sock}, '0'), $obj->{ $pid.'b' } = 0
if $obj->{ $pid.'b' };
return;
}
sub synchronize2 {
- my ($pid, $obj, $code, @ret) = ($tid ? $$ .'.'. $tid : $$, shift, shift);
+ my ($pid, $obj, $code) = ($tid ? $$ .'.'. $tid : $$, shift, shift);
+ my (@ret, $b);
+
return unless ref($code) eq 'CODE';
# lock, run, unlock - inlined for performance
- MCE::Util::_sysread($obj->{_w_sock}, my($b), 1), $obj->{ $pid.'b' } = 1
+ MCE::Util::_sysread($obj->{_w_sock}, $b, 1), $obj->{ $pid.'b' } = 1
unless $obj->{ $pid.'b' };
(defined wantarray)
? @ret = wantarray ? $code->(@_) : scalar $code->(@_)
: $code->(@_);
- syswrite($obj->{_r_sock}, '0'), $obj->{ $pid.'b' } = 0;
+ CORE::syswrite($obj->{_r_sock}, '0'), $obj->{ $pid.'b' } = 0;
return wantarray ? @ret : $ret[-1];
}
@@ -114,7 +116,7 @@ MCE::Mutex::Channel2 - Provides two mutexes using a single channel
=head1 VERSION
-This document describes MCE::Mutex::Channel2 version 1.866
+This document describes MCE::Mutex::Channel2 version 1.868
=head1 DESCRIPTION