<<がお〜〜〜っっっt。
非常に疲れるタイプの悪夢にうなされながら昼2時前に起床、雨が降っている。
ネットに繋いでFetchを起動し、昨夜の作業の続きを始めた。
昨夜のうちにディレクトリを切ってtelnetでごちょごちょ準備を済ませ、
AF1log.plの方は一応(ホントに一応)動作するようになったのじゃが...
大混乱状態のAFlist.plは動くどころの話ではなく、
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
#/[]
(以下数百行繰り返し)
などと意味不明の文字列を吐き出してそのままお亡くなりになってしまう。
どうにも頭が働かないので仕方無く作業を中断して眠ったのじゃが、
延々悪夢を見たのは明らかにコレが原因であろう。
細かく読んでいってもしょーがないのでカンに頼って大雑把な修正を続ける。
1時間ほど作業していたら画面にログが出現するようになり、
グチャグチャだったタグ類も徐々に均整が取れてきた。
速度の方はそれほどでも無く、複数のログファイルをいちいちロックするせいで
場合によっては従来よりヒマがかかってしまう...ロックルーチンも書き換えねば。
ログに書き込まない場合は共有ロック、書き込む場合はプロセスごと排他ロックか?
サーバー負担は確実に減ってるんだから速度にも何とか向上して貰わんとなあ。
パン、水、チョコケーキなど。チョコケーキは美味である。
排便&洗顔して5時過ぎから外出、強い風の中カサをさして駅へ。
途中でカット代の領収書をポストに入れた。
JRで三ノ宮、サンチカのフェンスを見ていると「震災復興」ツー感じ。
ボントンで珈琲を飲みつつプログラムと日記を少々。
ソフトバンクのCGI本に完璧なロックルーチンが出てたなあ、
確かプロセスIDを使ってロックファイルの同時作成を防止するんだよなあ等と
怪しい記憶をたぐりながら思案。ロックファイル名にIDを入れるのかな?
ジュンク堂に寄ってから元町、何となくコトブキのレストランに入ってみた。
ドリアとトマトスパゲティのセットを頼んだら何だか生ゴミの臭いがするし、
店内にかかってるコモロ某のクソ歌謡曲もうざったくてたまらん。二度と来んわ。
ロックルーチンについて思案しながら元町商店街を西進、
ついに回答が見つからぬまま神戸駅の本屋に入り「正解」を確認。
...ぐわ〜〜、まいった。ウマ過ぎます>ソフトバンクCGI本作者。
sub lock{
while (1){
sleep(1) while -f "tmp";
open(TMP,">tmp");
print TMP $$;
sleep(1) while -f "lock";
rename("tmp","lock");
open(LOCK,"lock");
$ID =;
return "OK" if $ID ==$$;
}
}
↑枝葉を省くとこんな感じ。一時ファイル「tmp」に自分のIDを記録してから
tmp→lockにリネームし、更にlockに記録されたIDを読みだして
本当に自分自身に属するものであるかどうか確認しておる訳です。マイッタ。
ちょっとクヤシイけど、これはそのままパクらせてもらう他ないかのう。
地下道を通って新開地、ヒットパレットでウォッカトニック。
良いプログラムを見た後は気分が良い...ちょとクヤシイけど<しつこい。
ひたすらAFlist.plとニラメッコし、閉店直前に店を出た。
兵庫駅まで歩いてJRで帰宅。本日の歩数=11206歩。
本日聴いたCD:
Giles,Giles&Fripp "The Cheerful Insanity of..."
Tom Petty "She's The One"