AnyEvent-Memcached
view release on metacpan or search on metacpan
examples/incadd.pl view on Meta::CPAN
my $cv = AnyEvent->condvar;
my @clients;
for (1..100) {
my $memd = AnyEvent::Memcached->new(
servers => [ '127.0.0.1:11211' ],
namespace => "test:",
);
push @clients,$memd;
}
my $t;$t = AE::timer 0,1,sub {
# every secons one clients will delete a key
$clients[0]->delete('key1', cb => sub {
defined $_[0] or warn "delete failed: $_[1]";
warn $_[0];
});
} if 0;
# prepare a work.
# delete key and make sure all clients get connected
examples/incadd.pl view on Meta::CPAN
$op->();
});
};$op->();
}
$cv->end;
# and we run deleter, that will make thing "bad"
my $deleter;$deleter = sub {
$clients[0]->delete('key1',cb => sub {
warn "deleted = @_";
my $wait;$wait = AE::timer 0,0,sub {
undef $wait;
$deleter->();
};
});
};$deleter->();
});
$cv->recv;
lib/AnyEvent/Memcached/Peer.pm view on Meta::CPAN
connected => sub {
shift->unreg_me;
#$c or return;
warn "connected cb for ".\@args.", ".dumper($args[0]) if DEBUG;
undef $c;undef $t;
$self or return;
delete $self->{waitingcb}{int $cb} if $cb;
return $self->{con}->$method(@args);
},
);
$t = AnyEvent->timer(
after => $self->{timeout},# + 0.05, # Since there are timers inside connect, we need to delay a bit longer
cb => sub {
#$t or return;
warn time()." timeout $self->{timeout} cb for $args->[0]" if DEBUG;
undef $c;undef $t;
$self or return;
if ($cb){
$self->{waitingcb}{int $cb};
$cb->(undef, "Connect timeout");
}
},
( run in 1.102 second using v1.01-cache-2.11-cpan-49f99fa48dc )