Rubyにはスレッドがある。クローラーをスレッド化して楽をしようとしてた。スレッドをさんざん使い回した挙句、高速化にはあまり効果を示さないことがわかった。
ただ、デバッグにはめちゃくちゃ便利だとわかった。
任意の場所で簡易コンソール
def debug(obj) t = Thread.new(obj) {|obj| s="" begin eval s STDOUT.print "Enter:>" STDOUT.flush end while s=gets } t.join end class Hoge def aaa debug(self) end end
なるほど。スレッドってそういうことだったのですね。
これでPrintを何度も仕込まなくてよくなった。
簡易コンソールでブレイクポイント
BUID_STATUS="DEBUG" def debug(obj) return if BUID_STATUS!="DEBUG" t = Thread.new(obj) {|obj| s="" begin eval s STDOUT.print "Enter:>" STDOUT.flush end while s=gets } t.join end
これでどんな場所でも簡易コンソールを開くことが出来る。べっっべ便利じゃ。