SVX日記
2005-01-18(Tue) ワタクシテキ悪夢
今朝は熱にウナされたのか、妙な夢を観た。先日より電池交換に出しているナビホークが戻ってきたのだが、腕に着けると妙にデザインがスッキリしてしまっているのに気づくのだ。針が長針と短針だけしかないぞ。文字盤がペローンと灰色だ。かろうじて計算尺は残っているが、4つあるはずの周囲のボタンが2つしか見当たらない。なんだよぉ。修理だからってココまで勝手なコトすんなよなぁ。こんなことになるなら防水機能をアキラめても、自分で電池だけ交換したのにぃ。うわわわぁーん!!
ハッ……あぁ、よかった……夢か。こんな夢を見るとは、実はあの腕時計が手元にないコトで、かなりの喪失感を味わっているという証明だろうか。ヤメてくれぇ。まだ体調は完全に回復してないんだ。この調子でいくと、今晩はSVXをスバルに預けたら勝手にレガシーに改造されてしまう夢を見るかもしれん。とほほほほ。
妙な疲労感を背負いながら職場へ。あまりカゼはよくなっておらず、ゲホゲホいいながら仕事する。なんでも仕事で引き継いだプログラムが勝手に落ちるという報告があったので対処する。うぅむ、どうやらサーバ役のPerlスクリプトが、クライアントごとにforkして処理するのだが、子クライアントが終了する時のSIGCHLDをマレに取りこぼすため、一晩で10個くらいのdefunctゾンビプロセスが残り、最後にはfork失敗で落ちるという症状っぽい。プログラムを引き継いだときには子プロセスの終了をwaitで一切待っていなかったので、接続ごとに確実に1匹ずつゾンビが残っていたのだが、オイラが「$SIG{CHLD} = sub { wait };」を追加してからは概ねゾンビが残らないようになっていた。しかし、それでもマレに取りこぼすのだ。なぜ?
おそらく原因は「UNIXのシグナルはキューイングされない」という点にあると思われる。つまりほぼ同時に子プロセスが処理を完了すると、双方からSIGCHLDが同時に上がるのだが、この時に先発または後発のどちらかのシグナルが捨てられてしまうのだ。そのためPerlが1つのSIGCHLDしか受け取れずwaitの数が1つ足りなくなり、defunctなゾンビプロセスが残る。そういうワケなのである。
そこで、最終的には「$SIG{CHLD} = sub { waitpid(-1, WNOHANG); waitpid(-1, WNOHANG) };」という対処とした。waitpidはwaitの高機能版でオプションが付けられる関数だ。詳細は省くが、なにしろ子プロセスが2つあれば2つ面倒見るという処理である。なければスルーする。
サクッとそんな適当な対処をしてpsで様子を見守りつつ、早めに仕事を切り上げる。今日は火曜日でDVDレンタルが安いのでツタヤに寄るのだ。いつのまにか最終話が出ていた「マクロスゼロ」と前から観たかった「地獄甲子園」を借りて帰る。
とりあえず「マクロスゼロ」の5話を観る。前に借りた4話には「かなり置き去りにされた」記憶があるのだが今回は大丈夫だろうか……(30分経過)……大丈夫じゃねーや……意味わかんね。いやぁ、マクロスというブランドに脊髄反射してしまうオイラはココイラで考えを改めるべきかも。鳥の人ってナニ? カドゥンってナニ? それよりなによりコノ作品の意図ってナニ?
別に積極的にファンに迎合しろとはいわないが「ゼロ」っていうからには、最後は「イチ」につなげる義務があると思うんだが違うかなぁ。せめて「実は『鳥の人』はその後のシリーズの××に深い関係が」とか「かくして統合戦争は一応の決着をみました」とかさぁ。よく観てないけど「ガンダム0083」とかそんな感じなんだよね? マクロスファン的には最後に輝とか美沙とかクローディアとかグローバル艦長とかがチョロっと出てくるような話も期待したと思うんだけど……。
他の人はどんな見方をしてるんだろう、と思って某ちゃんをちょっとノゾいたんだけど、あまりそういうトコロに言及してるヒトはいなくて、現実と比べて飛行機の機動がどうとか、統合軍と反統合軍ではどっちが強いとか、枝葉末節なコメントばかり。
「星を隔てて壮大に三角関係でドンパチする」という、話にまったく中身のないプラスの方が、各キャラ間の葛藤がハッキリしててオモシロかった気がする。ゼロでは誰がどんな思惑を持って行動しているのかがサッパリ不明。そもそも統合戦争はナゼ始まったの? 主人公のシンは何がしたかったの? 統合軍と反統合軍はどんな世界を目指しているの? 設定資料を読みゃワカるんかなぁ。でも、それってどうなのよ?
ワタシ的には1話を観た時はかなり盛り上がったのだけど……やっぱりよくある「最後はグダグダパターン」にハマったのだろうか? ちぇっ……。ハッ……雪風の方は大丈夫なんかな……不安だ。