[#18186] [req] Marshal — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

14 messages 2002/09/05
[#18190] Re: [req] Marshal — matz@... (Yukihiro Matsumoto) 2002/09/05

まつもと ゆきひろです

[#18229] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

22 messages 2002/09/09
[#18230] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — nobu.nakada@... 2002/09/09

なかだです。

[#18231] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18232] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — nobu.nakada@... 2002/09/09

なかだです。

[#18233] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18234] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — WATANABE Hirofumi <eban@...> 2002/09/09

わたなべです。

[#18236] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18238] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — WATANABE Hirofumi <eban@...> 2002/09/09

わたなべです。

[#18241] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18285] rubicon on EWS4800 — Koji Arai <JCA02266@...>

新井です。

59 messages 2002/09/13
[#18322] Re: rubicon on EWS4800 — Koji Arai <JCA02266@...> 2002/09/21

新井です。

[#18333] Re: rubicon on EWS4800 — kjana@...4lab.to (YANAGAWA Kazuhisa) 2002/09/21

In message <20020921.152641.11483667.JCA02266@nifty.ne.jp>

[#18336] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18337] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211605.g8LG52p04564@sharui.nakada.kanuma.tochigi.jp>,

[#18338] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18341] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211628.g8LGSxp04786@sharui.nakada.kanuma.tochigi.jp>,

[#18342] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18343] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211739.g8LHdKp05495@sharui.nakada.kanuma.tochigi.jp>,

[#18345] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/22

なかだです。

[#18349] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/22

In article <200209220415.g8M4Fkp24392@sharui.nakada.kanuma.tochigi.jp>,

[#18374] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...>

わたなべです。

20 messages 2002/09/25
[#18376] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — matz@... (Yukihiro Matsumoto) 2002/09/25

まつもと ゆきひろです

[#18377] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — nobu.nakada@... 2002/09/25

なかだです。

[#18378] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...> 2002/09/25

わたなべです。

[ruby-dev:18382] Re: rubicon on EWS4800

From: Tanaka Akira <akr@...17n.org>
Date: 2002-09-25 20:28:13 UTC
List: ruby-dev #18382
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, 桂遊生丸)

In This Thread