blib/lib/AnyEvent/Handle/UDP.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
condition | 11 | 32 | 34.3 |
line | !l | l&&!r | l&&r | condition |
---|---|---|---|---|
261 | 2 | 0 | 0 | $self->{'autoflush'} and not @{$self->{'buffers'};} |
263 | 0 | 0 | 0 | not defined $ret and $non_fatal{$! + 0} |
line | l | !l | condition |
---|---|---|---|
29 | 0 | 4 | $args{'receive_size'} || 1500 |
0 | 4 | $args{'family'} || 0 | |
0 | 4 | $args{'autoflush'} || 0 | |
0 | 4 | $args{'on_bind'} || sub { } | |
0 | 4 | $args{'on_connect'} || sub { } | |
0 | 4 | $args{'fh'} || bless(&Symbol::gensym(), 'IO::Socket') | |
170 | 3 | 0 | setsockopt $fh, 1, 2, 1 or die "Couldn't set so_reuseaddr: $!" |
line | l | !l&&r | !l&&!r | condition |
---|---|---|---|---|
29 | 4 | 0 | 0 | $args{'on_recv'} || Carp::croak('on_recv not given') |
260 | 0 | 0 | 0 | $cv ||= 'AnyEvent::CondVar'->new |
275 | 2 | 0 | 0 | defined $ret or $non_fatal{$! + 0} |
302 | 0 | 2 | 0 | $self->{'writer'} ||= &AE::io($self->{'fh'}, 1, sub { if (@{$self->{'buffers'};}) { while (my $entry = shift @{$$self{'buffers'};}) { do { my($msg, $to, $cv) = @{$entry;}; my $ret = $self->_send($msg, $to, $cv); unless (defined $ret) { unshift @{$$self{'buffers'};}, $entry if $self->{'buffers'}; last; } }; }; } else { $self->_drained; }; delete $self->{'writer'} if not @{$self->{'buffers'};}; } ) |