AC-DC
    
    
  
  
  
view release on metacpan or search on metacpan
lib/AC/DC/IO/Forked.pm view on Meta::CPAN
                my $v = waitpid $me->{pid}, WNOHANG;
                last if $v;	# error or dead
                kill 9, $me->{pid};
            }
        }
        $me->{exitval} = $?;
        delete $me->{pid};
    }
    $me->SUPER::shut();
}
sub _readable {
    my $me = shift;
    my $buf;
    my $bs = $me->{rbufsize} || $BUFSIZ;
    my $i = sysread($me->{fd}, $buf, $bs);
    unless( defined $i ){
    
  
  
  lib/AC/DC/IO/TCP/Client.pm view on Meta::CPAN
    ($addr, $port) = $class->use_addr_port( $addr, $port );
    debug("starting new tcp client: $addr:$port");
    my $ip = inet_aton($addr);
    unless($ip){
        verbose("tcp client cannot resolve '$addr'");
        return ;
    }
    my $me = $class->SUPER::new( @_ );
    $me->{tcp_server_ip}   = $ip;
    $me->{tcp_server_addr} = $addr;
    $me->{tcp_server_port} = $port;
    return $me;
}
sub start {
    my $me = shift;
    my $fd;
    my $i = socket($fd, PF_INET, SOCK_STREAM, 0);
    $me->SUPER::start($fd);
    unless( $i ){
        verbose("tcp client socket failed: $! ($me->{info})");
        $me->run_callback('error', { cause => 'socket', error => "socket failed: $!" });
        $me->shut();
        return ;
    }
    while(1){
        my $i = connect($fd, sockaddr_in($me->{tcp_server_port}, $me->{tcp_server_ip}) );
        last if $i;		# success
    
  
  
  lib/AC/DC/IO/TCP/Client.pm view on Meta::CPAN
            $me->run_callback('error', { cause => 'connect', error => "connect failed: $e" });
            $me->shut();
            return;
        }
        debug("tcp client connected $me->{info}");
        $me->{_connected} = 1;
        $me->run_callback('connect', undef);
    }
    $me->SUPER::_writable(@_);
}
sub use_addr_port {
    my $class = shift;
    return @_;
}
    
  
  
  
( run in 1.217 second using v1.01-cache-2.11-cpan-a1d94b6210f )