Config-Patch
view release on metacpan or search on metacpan
lib/Config/Patch.pm view on Meta::CPAN
}
###########################################
sub lock {
###########################################
my($self) = @_;
# Ignore if locking wasn't requested
return if ! $self->{flock};
# Already locked?
if($self->{locked}) {
$self->{locked}++;
return 1;
}
open my $fh, "+<$self->{file}" or
LOGDIE "Cannot open $self->{file} ($!)";
flock($fh, LOCK_EX);
$self->{fh} = $fh;
$self->{locked} = 1;
}
###########################################
sub unlock {
###########################################
my($self) = @_;
# Ignore if locking wasn't requested
return if ! $self->{flock};
if(! $self->{locked}) {
# Not locked?
return 1;
}
if($self->{locked} > 1) {
# Multiple lock released?
$self->{locked}--;
return 1;
}
# Release the last lock
flock($self->{fh}, LOCK_UN);
$self->{locked} = undef;
1;
}
# LEGACY METHODS
###########################################
sub patches {
###########################################
my($self) = @_;
( run in 0.488 second using v1.01-cache-2.11-cpan-49f99fa48dc )