井上 浩一様 > 暴走の定義 > 1)時間自爆 > 明らかに暴走の場合は、指定した時間以上の動作を行うこととする。 これ全然明らかじゃないですよね。どういう動作を指定した時間以上行った ときに暴走と判断するのですか? > 例えば、 ruby --kamikaze 300 5分以上経つと、例外が発生する 例外を発生させるのは誰?そもそも暴走というのは意図したことと違う動作 をしているのだから意図したように例外を発生してくれる保証は何もないで すよね。それとも外部ツールで実装するということでしょうか? > これは状況自爆でなくて、時限自爆。timeoutを使えば良いかもしれませんが、 > スクリプトのレベルでなく Ruby本体レベルで行うことで、ソースが汚れず強力であ > る。 でもここではRuby本体で行うとしているし。 > 2)状況自爆 > loop{ > print "A" > } > これも作者の意図をしている場合もあるので、これだけでは判断付きにくい。よっ > て、 > $LOOP_ENABLE = false というグローバル変数を設けて、ループの善悪を決める。 > falseはループを認めないということで、同じ位置に戻った場合 Rubyのソースでルー > プは必ずスタート位置があるので、 > そこを通過したら、FLAGを立て2回目回るとフラグを見て例外を発生させる。 > 例外=終了と位置づけている。 > > 例外としている点は、ここで強制終了されたら困る場合の保険で3回目通過した場合 > は、問答無用の強制終了を行う。 すいません。理解できません。ループの善悪を決められるのならそういうデ バッグオプションは必要ないように思います。 /************************************************/ /****** TDa ************/ /****** mailto:tda / plum.to ************/ /************************************************/