LockFile::Simple

ファイルロックスキームを提供する

ロック対象ファイルと1:1に対応するロックファイルを生成し、ロックファイルの有無によってファイルロックを判定する。

use LockFile::Simple;
パッケージをロードする。

my $lock = LockFile::Simple->make(-key => value, …);
インスタンスを生成する。keyに指定可能な主なパラメタは、下記の通り。
autoclean:trueの場合、プロセスが終了するときに自動的にロックを解除する。
delay:ファイルがロックできなかったときに再試行するまでの待ち時間。デフォルトは2(秒)。
ext:ロックファイルの拡張子。デフォルトは".lock"
format:ロックファイル名のテンプレート。デフォルトは %f.lock
   %f ロック対象ファイルのフルパス名。
   %D ロック対象ファイルのディレクトリ名。
   %F ロック対象ファイルのノード名。
   %p PID
   %% %
hold:ファイルをロックする最長時間。この時間を経過すると、ロックは自動的に解除される。デフォルトは3600(秒)。0を指定すると、自動解除は行われなくなる。
max:ファイルがロックできなかったときに再試行する回数。デフォルトは30(回)。
warn:trueの場合、警告(ロック再試行など)を表示する。デフォルトはtrue。
wmin:ロック再試行警告を表示する再試行回数。デフォルトは15(回)。

my $lh = $lock->lock($file, $format);
ファイル$fileをロックしてロックハンドルを返す。$formatは、makeメソッドのformatパラメタと同じ。
ロックできなかったときはfalseを返す。

my $lockfile = $lock->lockfile($file, $format);
ファイル$fileをロックする際に使用するロックファイル名を返す。

my $lh = $lock->trylock($file, $format);
ファイル$fileをロックしてロックハンドルを返す。但し、ロックできなかったときは、再試行せずにfalseですぐに戻る。
$formatは、makeメソッドのformatパラメタと同じ。

$lock->unlock($file);
ファイルをアンロックする。

$lh->release();
lockメソッドが返したロックハンドルを使用してファイルをアンロックする。