Perlのファイルロック

定番のシンボリック方式。備忘。

;# lock file
sub fileLock {
        my( $lockfile ) = $_[0];
        my( $wait ) = 10;
        while (!symlink(".", $lockfile)) {
                if (--$wait <= 0) {
                        # lock failed
                        print( "ファイルロックに失敗しました\n" );
                        &dbHandleLogUnlock( $lockfile );
                        exit;
                }
                sleep (2);
        }
}
;# unlock file
sub fileUnlock {
     unlink ($_[0]);
}