[#18151] Regexp.last_match — WATANABE Tetsuya <llama@...01.gate01.com>
渡辺哲也です。
[#18186] [req] Marshal — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
In article <1031498274.659939.18144.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1032189662.175916.22019.nullmailer@picachu.netlab.jp>,
[#18208] Re: [ruby-list:35875] Unsecure world writeabledir の警告 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
わたなべです。
[#18229] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
わたなべです。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
わたなべです。
[#18246] Re: missing/vsnprintf.c: printf("%+f", -0.0) — WATANABE Hirofumi <eban@...>
わたなべです。
At Tue, 10 Sep 2002 12:21:10 +0900,
[#18262] mswin32: EINVAL on Process.kill — Minero Aoki <aamine@...>
あおきです。
[#18274] $0 handling on DOSISH — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
岩月と申します。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
[#18285] rubicon on EWS4800 — Koji Arai <JCA02266@...>
新井です。
新井です。
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
新井です。
なかだです。
In message <20020921.152641.11483667.JCA02266@nifty.ne.jp>
なかだです。
In article <200209211605.g8LG52p04564@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209211628.g8LGSxp04786@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209211739.g8LHdKp05495@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209220415.g8M4Fkp24392@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209260105.g8Q15PR08171@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <20020921.152641.11483667.JCA02266@nifty.ne.jp>,
なかだです。
In article <200209251737.g8PHbdR03024@sharui.nakada.kanuma.tochigi.jp>,
渡辺哲也です。
なかだです。
渡辺哲也です。
渡辺哲也です。
なかだです。
渡辺哲也です。
なかだです。
In article <200210020254.g922srH01700@sharui.nakada.kanuma.tochigi.jp>,
[#18314] class nest in module_eval — Minero Aoki <aamine@...>
あおきです。
[#18361] compile parse.y with -Wall — nobu.nakada@...
なかだです。
なかだです。
[#18371] Re: [ruby-cvs] ruby/lib/uri: * eval.c (ruby_run): should set toplevel visibility again here. — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#18374] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
なかだです。
わたなべです。
いがらしです。少し前の話ですが。
わたなべです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#18391] pstore.rb can make a broken store — YANAGAWA Kazuhisa <kjana@...4lab.to>
# お願いされたから書いてみよう :-)
In article <20020926134339.C8DAE1EE12@milestones.dm4lab.to>,
[ruby-dev:18382] Re: rubicon on EWS4800
In article <200209251737.g8PHbdR03024@sharui.nakada.kanuma.tochigi.jp>,
nobu.nakada@nifty.ne.jp writes:
> Mswin32.dont/onlyにするよりもUnix.only/dontにすべきでしょう。
たしかに。でも only じゃなくて or_variant かな。
> > thread は... なんだったかな。これを入れとかないと時々失敗していた覚え
> > があります。
>
> ここでエラーになったのを見た覚えはないような気がします。
たくさん動かしたら出てきました。
% ruby TestThreadGroup.rb
TestThreadGroup#test_00sanity .
TestThreadGroup#test_add .
TestThreadGroup#test_list deadlock 0x1bcaa8: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bcb80: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bcc58: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bcd30: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bce08: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bcee0: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bcfb8: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bd090: 2:0 - TestThreadGroup.rb:26
deadlock 0x1bd168: 2:0 - TestThreadGroup.rb:26
deadlock 0x100fa8: 2:8 (main) - TestThreadGroup.rb:33
deadlock 0x1bc9d0: 2:0 - TestThreadGroup.rb:26
TestThreadGroup.rb:26:in `test_list': Thread: deadlock (fatal)
from TestThreadGroup.rb:31:in `each'
from TestThreadGroup.rb:31:in `test_list'
from /home/akr/src/ruby/z/lib/ruby/site_ruby/1.7/runit/testcase.rb:64:in `send'
from /home/akr/src/ruby/z/lib/ruby/site_ruby/1.7/runit/testcase.rb:64:in `run_bare'
from /home/akr/src/ruby/z/lib/ruby/site_ruby/1.7/runit/testcase.rb:51:in `run'
from /home/akr/src/ruby/z/lib/ruby/site_ruby/1.7/runit/testsuite.rb:16:in `run'
from /home/akr/src/ruby/z/lib/ruby/site_ruby/1.7/runit/testsuite.rb:16:in `each'
from /home/akr/src/ruby/z/lib/ruby/site_ruby/1.7/runit/testsuite.rb:17:in `run'
from /home/akr/src/ruby/z/lib/ruby/site_ruby/1.7/runit/cui/testrunner.rb:26:in `run'
from ./../rubicon_tests.rb:238:in `handleTests'
from TestThreadGroup.rb:44
というように deadlock が起こります。
(100回動かして数回といったところですが。)
さて、上の結果は次のように少々改行を増やした版でのエラーメッセージです。
22 def test_list
23 tg = ThreadGroup.new
24 10.times do
25 t = Thread.new {
26 Thread.stop
27 }
28 tg.add(t)
29 end
30 assert_equals(10, tg.list.length)
31 tg.list.each {|t|
32 t.wakeup
33 t.join
34 }
35 end
エラーメッセージからは main thread が 33行目(t.join)で止まっていて、
26行目(Thread.stop)で止まってるスレッドが 10個あることがわかります。
おそらく、
1. main で Thread.new が動き、新しいスレッドができる(th とする)
2. th で (Thread.stop に到達する前に) context switch がおきる
3. main で t.wakeup が呼ばれるが th は run な状態なので変化なし
4. main で t.join が呼ばれて th の終了を待つために th に context
switch される
5. th で Thread.stop が実行され、これを起こすものはいないので deadlock
という story だと思うんですが。
(そうか、Thread.critical = false はいらなかったかな)
--
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)