AnyEvent-SNMP
view release on metacpan or search on metacpan
my $pdu = shift @QUEUE
or last;
++$BUSY;
_send_pdu $pdu, $pdu->retries;
}
$DONE and $DONE->() unless $BUSY;
}
sub send_pdu($$$) {
my (undef, $pdu, $delay) = @_;
# $delay is not very sensibly implemented by AnyEvent::SNMP,
# but apparently it is not a very sensible feature.
if ($delay > 0) {
++$BUSY;
my $delay_w; $delay_w = AE::timer $delay, 0, sub {
undef $delay_w;
push @QUEUE, $pdu;
--$BUSY;
};
return 1;
}
push @QUEUE, $pdu;
kick_job;
1
}
sub loop($) {
while ($BUSY) {
$DONE = AE::cv;
$DONE->recv;
undef $DONE;
}
}
*activate = \&loop; # 5.x compatibility?
*listen = \&loop; # 5.x compatibility?
sub one_event($) {
# should not ever be used
AnyEvent->one_event; #d# todo
}
sub set_max_outstanding($) {
$MAX_OUTSTANDING = $_[0];
kick_job;
}
# not provided yet:
# schedule # apparently only used by Net::SNMP::Dispatcher itself
# register # apparently only used by Net::SNMP::Dispatcher itself
# deregister # apparently only used by Net::SNMP::Dispatcher itself
# cancel # apparently only used by Net::SNMP::Dispatcher itself
# return_response_pdu # apparently not used at all?
( run in 0.756 second using v1.01-cache-2.11-cpan-65fba6d93b7 )