106 |
$self->{file} = "$dir/$name"; |
$self->{file} = "$dir/$name"; |
107 |
$self->{uniqueatt} = $parm{uniqueatt}; |
$self->{uniqueatt} = $parm{uniqueatt}; |
108 |
$self->{mode} = O_CREAT; |
$self->{mode} = O_CREAT; |
109 |
my $lockmgr = LockFile::Simple->make(-autoclean => 1); |
my $lockmgr = LockFile::Simple->make(-autoclean => 1, -stale => 1); |
110 |
# aquire a write lock |
# aquire a write lock |
111 |
$self->{write_lock} = $lockmgr->lock("$dir/$name/write") |
$self->{write_lock} = $lockmgr->lock("$dir/$name/write") |
112 |
or die "Can't lock '$dir/$name/write'"; |
or die "Can't lock '$dir/$name/write'"; |
153 |
|
|
154 |
if ($self->{mode} & O_RDWR) { |
if ($self->{mode} & O_RDWR) { |
155 |
# Locking: We do not care about read access since write is atomic. |
# Locking: We do not care about read access since write is atomic. |
156 |
my $lockmgr = LockFile::Simple->make(-autoclean => 1); |
my $lockmgr = LockFile::Simple->make(-autoclean => 1, -stale => 1); |
157 |
|
|
158 |
# aquire a write lock |
# aquire a write lock |
159 |
$self->{write_lock} = $lockmgr->lock("$dir/$name/write") |
$self->{write_lock} = $lockmgr->lock("$dir/$name/write") |
318 |
} |
} |
319 |
WAIT::Table::Handle->new($self,$name); |
WAIT::Table::Handle->new($self,$name); |
320 |
} else { |
} else { |
321 |
croak "No such table '$name'"; |
print STDERR "No such table '$name'\n"; |
322 |
|
return; |
323 |
} |
} |
324 |
} |
} |
325 |
|
|