--- cvsroot/EV/EV.pm 2007/11/21 05:09:38 1.43 +++ cvsroot/EV/EV.pm 2007/11/23 03:59:23 1.45 @@ -59,7 +59,7 @@ use strict; BEGIN { - our $VERSION = '1.1'; + our $VERSION = '1.2'; use XSLoader; XSLoader::load "EV", $VERSION; } @@ -495,28 +495,30 @@ or return; # make the dispatcher handle any outstanding stuff + ... not shown # create an IO watcher for each and every socket @snmp_watcher = ( (map { EV::io $_, EV::READ, sub { } } keys %{ $dispatcher->{_descriptors} }), - ); - # if there are any timeouts, also create a timer - push @snmp_watcher, EV::timer $event->[Net::SNMP::Dispatcher::_TIME] - EV::now, 0, sub { } - if $event->[Net::SNMP::Dispatcher::_ACTIVE]; + EV::timer +($event->[Net::SNMP::Dispatcher::_ACTIVE] + ? $event->[Net::SNMP::Dispatcher::_TIME] - EV::now : 0), + 0, sub { }, + ); }; -The callbacks are irrelevant, the only purpose of those watchers is -to wake up the process as soon as one of those events occurs (socket -readable, or timer timed out). The corresponding EV::check watcher will then -clean up: +The callbacks are irrelevant (and are not even being called), the +only purpose of those watchers is to wake up the process as soon as +one of those events occurs (socket readable, or timer timed out). The +corresponding EV::check watcher will then clean up: our $snmp_check = EV::check sub { # destroy all watchers @snmp_watcher = (); # make the dispatcher handle any new stuff + ... not shown }; The callbacks of the created watchers will not be called as the watchers @@ -529,8 +531,8 @@ =head1 THREADS -Threads are not supported by this in any way. Perl pseudo-threads is evil -stuff and must die. +Threads are not supported by this module in any way. Perl pseudo-threads +is evil stuff and must die. =cut