Devel-REPL-InProcess
view release on metacpan or search on metacpan
lib/Devel/REPL/Client/AnyEvent.pm view on Meta::CPAN
return $self;
}
sub listen {
my ($self) = @_;
my $weak_self = $self;
weaken($weak_self);
my $cb = sub { $weak_self->_new_connection($_[0]) };
my $prepare = ($self->{path} && defined $self->{mode}) ? sub {
chmod $weak_self->{mode}, $weak_self->{path}
or die "Unable to change file mode for socket: $!";
} : undef;
if ($self->{port}) {
$self->{tcp_guard} = tcp_server('127.0.0.1', $self->{port}, $cb);
} elsif ($self->{path}) {
$self->{tcp_guard} = tcp_server('unix/', $self->{path}, $cb, $prepare);
}
}
sub _new_connection {
lib/Devel/REPL/Client/Select.pm view on Meta::CPAN
);
} elsif ($self->{path}) {
if (-S $self->{path}) {
unlink $self->{path} or die "Unable to unlink stale socket: $!";
}
$self->{socket} = IO::Socket::UNIX->new(
Local => $self->{path},
);
if ($self->{socket} && defined $self->{mode}) {
chmod $self->{mode}, $self->{path}
or $self->{socket} = undef;
}
if ($self->{socket}) {
$self->{socket}->listen(1)
or $self->{socket} = undef;
}
}
die "Unable to start listening: $!" unless $self->{socket};
}
( run in 0.592 second using v1.01-cache-2.11-cpan-8d75d55dd25 )