Couchbase-Client
view release on metacpan or search on metacpan
lib/Couchbase/Test/Async/Loop.pm view on Meta::CPAN
my ($events,$prefix,$dupfh) = @_;
while (my ($ev,$meth) = each %EVMETH_MAP) {
if($events & $ev) {
log_debugf("Invoking $prefix: $meth on dupfd %d", fileno($dupfh));
$poe_kernel->${\"$prefix\_$meth"}($dupfh);
}
}
}
sub update_event :Event {
my ($evdata,$action,$flags) = @_[ARG0..ARG2];
my $dupfh = $evdata->[EVIDX_DUPFH];
if($action == EVACTION_WATCH) {
if(!$dupfh) {
open $dupfh, ">&", $evdata->[EVIDX_FD];
_activate_events($flags, $dupfh, $evdata->[EVIDX_OPAQUE]);
$evdata->[EVIDX_DUPFH] = $dupfh;
} else {
my $events_do_delete = $evdata->[EVIDX_WATCHFLAGS] & (~$flags);
lib/Couchbase/Test/Async/Loop.pm view on Meta::CPAN
"fd=".$evdata->[EVIDX_FD]);
}
my $prefix = $action == EVACTION_SUSPEND ? "pause" : "resume";
$prefix = "select_" . $prefix;
_startstop_events($evdata->[EVIDX_WATCHFLAGS], $prefix, $dupfh);
} else {
die("Unhandled action $action");
}
}
sub update_timer :Event {
my ($evdata,$action,$usecs) = @_[ARG0..ARG2];
my $timer_id = $evdata->[EVIDX_PLDATA];
my $seconds;
if($usecs) {
$seconds = ($usecs / (1000*1000));
}
if($action == EVACTION_WATCH) {
if(defined $timer_id) {
log_debugf("Rescheduling timer %d in %0.5f seconds from now",
( run in 0.262 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )