return 1;
}
+sub size {
+ my $self = shift;
+
+ return 0 unless $self->{fh};
+ return -s $self->{fh};
+}
+
sub set_inode {
my $self = shift;
# times before unlock(), then the same number of unlocks() must
# be called before the lock is released.
##
+sub lock_exclusive {
+ my $self = shift;
+ my ($obj) = @_;
+ return $self->lock( $obj, LOCK_EX );
+}
+
+sub lock_shared {
+ my $self = shift;
+ my ($obj) = @_;
+ return $self->lock( $obj, LOCK_SH );
+}
+
sub lock {
my $self = shift;
my ($obj, $type) = @_;
if ($self->{locking} && $self->{locked} > 0) {
$self->{locked}--;
- if (!$self->{locked}) { flock($self->{fh}, LOCK_UN); }
- return 1;
+ if (!$self->{locked}) {
+ flock($self->{fh}, LOCK_UN);
+ return 1;
+ }
+
+ return;
}
return;