カウンターを設置してみる
このブログにKENT WEB(http://www.kent-web.com/)のDay Counter-EXを設置してみることにした。
設置方法などはKENT WEBの説明を見てもらうとして
ファイルのロック方式をflockに改造して設置してみました。
lockとunlockサブルーチンの既存の部分をコメントアウトしてflockの処理をちょこっと入れただけです。
これでかなりファイルが壊れる確率が下がると思います。
#————–#
# ロック処理 #
#————–#
sub lock {
# local($retry) = 5;
# if (-e $lockfile) {
# local($mtime) = (stat($lockfile))[9];
# if ($mtime < time - 60) { &unlock; } # } # # symlink関数式ロック # if ($lockkey == 1) { # while (!symlink(".", $lockfile)) { # if (--$retry <= 0) { &error; } # sleep(1); # } # # mkdir関数式ロック # } elsif ($lockkey == 2) { # while (!mkdir($lockfile, 0755)) { # if (--$retry <= 0) { &error; } # sleep(1); # } # } open(LOCK,">$lockfile”);
flock(LOCK,2);
$lockflag=1;
}
#————–#
# ロック解除 #
#————–#
sub unlock {
# if ($lockkey == 1) { unlink($lockfile); }
# elsif ($lockkey == 2) { rmdir($lockfile); }
flock(LOCK,8);
close(LOCK);
$lockflag=0;
}
タグ :