2011年06月19日

プログラムの暴走

 オーツは、普段からよく使うエディタに、さまざまな自作のマクロコマンドを組み込んでいます。
 その一つが、ファイル内に記述された URL を全部ブラウザで開く処理をするマクロです。
 同時に30個くらいのホームページにアクセスしたいときがあります。Google Chrome をはじめ、多くのブラウザが現在はタブブラウザになっていますから、そういう多くのページをいっせいに開いても十分操作できます。
 ところが、先日、キーボードをミスタッチして、別のファイルを編集中に間違ってこのマクロを起動してしまいました。編集中のファイルは、ある人から来たメールを保存したものだったため、URL が大量に(1千個くらい?)書いてあったわけです。
 エディタのマクロが次々とウェブにアクセスして、各種のページを開いていくのを見て、オーツはあわてました。
 最後の最後はパソコンの電源を強制的に切れば止まるとは思いましたが、そうすると、編集中のファイル(の修正した部分)が失われてしまいます。
 そこで、まずは、次々に開いていくブラウザを片っ端から閉じることにしました。0.3 秒くらいずつの間隔でブラウザのウィンドウが開いていくのですが、それを手動で閉じていくのです。パソコンとの競争みたいな感覚になってしまいました。モグラたたきのようです。
 どんどん消しても、Google Chrome がどんどん起動されていきます。慣れてくると、右上の「×」をクリックするのは早くなりますが、なかなか追いつけません。もしも追いついて、最初に開いていた通常のブラウザを閉じてしまうと、それはそれで問題になります。
 一つのブラウザのウィンドウに複数個のタブが開いて、それぞれが何かを読んでいる場合もたくさんありましたが、いちいち確認せずに、ひたすら消し続けたわけです。
 5分くらい格闘するうち、Google Chrome がたくさん起動されすぎて、これ以上起動できないということになってしまいました。このとき「Google Chrome はこれ以上起動できません」とか何とかいうエラーメッセージが出てきて閉じていいかどうか聞かれますので、今度は「はい」ボタンを押すことになります。次々とエラーメッセージが書き出され、パソコン画面がエラーメッセージで埋め尽くされていきます。
 しばらくして、ファイルの最後までカーソルが動き、エディタからブラウザを呼び出すことが止まりましたので、やっと終了しました。そのときには、Google Chrome はまったく動かなくなっていました。
 制御が戻ったので、各種ファイルを保存して、パソコンを再起動して、何とか事態は収束しました。
 いやはや、飛んでもない経験をしました。
 マクロでは、一気に全部のファイルをオープンするべきではなく、たとえば、40個オープンしたら、さらに継続するかどうか、尋ねるようにすればよかったのです。マクロを作るとき、そんなことまで気が回らずに、とりあえず動くものを作った段階でエディタに登録してしまいました。
 ずっと前に(オーツが学生だったころ)経験した「プログラムの暴走」と同じ感覚でした。そのときは、ラインプリンタに次々と数値がプリントされていくのですが、止めることができず、見守るだけでした。しばらくしてプリントは終わりましたが、回りのユーザーがラインプリンタの出力(いかにも無意味な数値の羅列)を見ていたので、恥ずかしい思いをしたことを覚えています。
 さっそく、エディタのマクロを書き直すことにしました。
posted by オーツ at 04:56| Comment(0) | TrackBack(0) | パソコンとIT | このブログの読者になる | 更新情報をチェックする