package KinoSearch::Store::RAMLock;
use strict;
use warnings;
use KinoSearch::Util::ToolSet;
use base qw( KinoSearch::Store::Lock );
our %instance_vars = __PACKAGE__->init_instance_vars;
sub do_obtain {
my $self = shift;
# bail if the virtual lockfile already exists
return if $self->{invindex}->file_exists( $self->{lock_name} );
# create a virtual lockfile
my $temp = $self->{invindex}->open_outstream( $self->{lock_name} );
$temp->close;
return 1;
}
sub release {
my $self = shift;
# delete the virtual lockfile
$self->{invindex}->delete_file( $self->{lock_name} );
}
sub is_locked {
my $self = shift;
return $self->{invindex}->file_exists( $self->{lock_name} );
}
1;
__END__
=begin devdocs
=head1 NAME
KinoSearch::Store::RAMLock - lock a RAMInvIndex
=head1 DESCRIPTION
Implementation of KinoSearch::Store::Lock entirely in memory.
=head1 COPYRIGHT
Copyright 2005-2006 Marvin Humphrey
=head1 LICENSE, DISCLAIMER, BUGS, etc.
See L<KinoSearch|KinoSearch> version 0.09.
=end devdocs
=cut