Acrux
view release on metacpan or search on metacpan
lib/Acrux/FileLock.pm view on Meta::CPAN
unless ($fh->close) {
$self->error(sprintf("Can't close \"%s\": %s", $tmp_file, $!));
$self->_debug($self->error);
unlink $tmp_file if -f $tmp_file;
return $self;
}
# Rename temp file to lock file
for my $try (0 .. $self->{retries}) {
unless ($self->check()) { # not exists, ok
if (rename($tmp_file, $self->file)) {
$self->{_is_locked} = 1;
$self->_debug("Got lock file (flock=false)");
return $self;
}
}
if ($self->{retries} && ($try != $self->{retries})) {
$self->_debug(sprintf("Retrying in %d seconds", $self->{delay}));
sleep $self->{delay} unless ($try == $self->{retries});
}
}
( run in 0.851 second using v1.01-cache-2.11-cpan-ff9377addf4 )