Cache-Memcached-PDeque
view release on metacpan or search on metacpan
lib/Cache/Memcached/PDeque.pm view on Meta::CPAN
confess("Timeout must not be '1'") if $arg{'timeout'} == 1;
while (1) {
my $have_lock = $self->memcached->add("$priority:lock", $$, $arg{'timeout'});
last if $have_lock;
sleep(.1);
}
affirm {
my $locked_by = $self->memcached->get("$priority:lock");
$$ == $locked_by;
};
}
sub _unlock {
my ( $self, $priority ) = @_;
affirm {
my $locked_by = $self->memcached->get("$priority:lock");
$$ == $locked_by;
};
$self->memcached->delete("$priority:lock");
}
no Moose;
__PACKAGE__->meta->make_immutable;
=head1 AUTHOR
( run in 0.619 second using v1.01-cache-2.11-cpan-49f99fa48dc )