トップ «前の日記(2011-03-04) 最新 次の日記(2011-03-08)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2011-03-05

_ 3/4日記の間違いを訂正

> 仕組み上、テストがメインスレッドではないスレッドで実行される

これは違って、テストの入出力の受け持ちがワーカスレッドで、テストそのものはメインスレッドで実行される(と読めるんだけど自信なし)。

(parallel.rbでスレッド作ってるのはここ)
        th = Thread.new do
          begin
            while buf = (self.verbose ? i.gets : i.read(5))
              @stdout.puts "p #{[buf].pack("m").gsub("\n","")}"
            end
          rescue IOError
          rescue Errno::EPIPE
          end
        end

でも、いずれにしてもGCはどのスレッドでも起動されるので、オブジェクトを生成したのではないスレッドで回収に入ることがあるのは間違いない。

不思議なのは、-j 1で実行するとほぼ完走することが多い(死ぬこともある)。でも、-j nでnが大きいほど、個々のプロセスで実行するテストは少なくなるはずだから、これは不思議(当然、GCの頻度も下がるはずだし)。

では、なんで死ぬのかと言えば、やはりスレッドの存在としか思えない。

で、以前作ったGITのやつを引っ張り出して来たら、ほぼ死ななくなったようだけど、イベントの処理エラーテストに引っ掛かる。理解不能なところに入り込んでしまった。

さてではどうしようかなぁとか。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え