Catalyst-Engine-HTTP-POE
view release on metacpan or search on metacpan
lib/Catalyst/Engine/HTTP/POE.pm view on Meta::CPAN
delete $self->{clients}->{$ID};
}
sub read_input {
my ( $kernel, $self, $handle, $ID ) = @_[ KERNEL, OBJECT, ARG0, ARG2 ];
my $client = $self->{clients}->{$ID} || return;
BENCH && $client->{stopwatch}->lap('read_input');
# Clear the keepalive timeout timer if set
if ( my $timer = delete $client->{_timeout_timer} ) {
$kernel->alarm_remove( $timer );
}
# Read some data from the driver
my $driver = $client->{wheel}->[ $client->{wheel}->DRIVER_BOTH ];
my $buffer_ref = $driver->get( $handle );
if ( !$buffer_ref ) {
# Error, stop reading and shut down this client
DEBUG && warn "[$ID] [$$] Error reading, disconnecting\n";
$kernel->select_read( $handle );
lib/Catalyst/Engine/HTTP/POE.pm view on Meta::CPAN
# Clear important variables from the previous state
delete $client->{_headers};
delete $client->{_written};
delete $client->{_read};
if ( BENCH ) {
$client->{stopwatch} = Benchmark::Stopwatch->new->start;
}
# timeout idle connection after some seconds
$client->{_timeout_timer} = $kernel->delay_set( 'keepalive_timeout', KEEPALIVE_TIMEOUT, $ID );
}
else {
DEBUG && warn "[$ID] [$$] client_done, closing connection\n";
delete $self->{clients}->{$ID};
}
}
sub keepalive_timeout {
my ( $kernel, $self, $ID ) = @_[ KERNEL, OBJECT, ARG0 ];
( run in 0.766 second using v1.01-cache-2.11-cpan-49f99fa48dc )