[#1582] [BUG] Regexp — sinara@...

原です。あけましておめでとうございます。

16 messages 1997/01/06

[#1705] 正規表現 単独の ? — Sinichiro Dezawa <dezawa@...>

出沢です

14 messages 1997/01/15

[#1771] rectangle of canvas widget — Noritugu Nakamura <nnakamur@...>

18 messages 1997/01/19

[#1788] Text of TkCanvas — Noritugu Nakamura <nnakamur@...>

28 messages 1997/01/20
[#1800] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/21

まつもと ゆきひろです.

[#1802] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/21

[#1806] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1816] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/22

[#1819] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1865] ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1997/01/24
[#1878] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1879] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1880] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1890] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1926] [Dist] Mutex module — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

81 messages 1997/01/28
[#1929] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1934] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1935] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1938] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1940] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1944] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1947] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1960] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1969] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1978] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1986] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1989] Array as list/tupple (Re: [Dist] Mutex module) — matz@... (Yukihiro Matsumoto) 1997/01/31

まつもと ゆきひろです.

[#2008] [Request] static var? (Re: Array as list/tupple) — sinara@... 1997/01/31

原です。

[#1953] open (file descriptor) — j_kuro@... (Jun Kuroda)

黒田です.

16 messages 1997/01/29

[ruby-list:1724] Re: [Q] Use of Thread and Mutex

From: sinara@...
Date: 1997-01-16 10:58:54 UTC
List: ruby-list #1724
原です。

一連の thread がらみのレポートに対して、まつもとさんの反応が
あまりないけど(^^; 、、、単なるぼやきだと思われたかな?


改めて現状報告です。

【1】[ruby-list 1669] で述べた

----^ deadlock_test2.rb
#!/usr/local/bin/ruby
require "thread"
m = Mutex.new
Thread.start {
  m.synchronize {
    m.synchronize {
    }
  }
}
sleep 1
----$ deadlock_test2.rb

が Segmentation fault で落ちる件ですが、最新バージョンでは落ちなく
なりました。

修正がなされたのでしょうか?


【2】[ruby-list 1696] で述べた thread.rb の class Queue は、うま
く動作しないことがあるのではないかという話ですが、確かに次のスク
リプトは、結構早く止まってしまいます。

-----^ queue_test.rb
#!/usr/local/bin/ruby
require "thread"
$que = Queue.new
$s = "a"

def foo(n)
  loop do
    unless $que.pop
      print "##{n} poped nil.\n"
      exit
    end
  end
end

Thread.start { foo(0) }
Thread.start { foo(1) }
Thread.start {
  loop do
    print $s,"\n"
    $que.push $s    
    $s = $s.succ
  end
}
sleep
-----$ queue_test.rb

やはり、まずいみたいです。


【3】[ruby-list 1696] で言ったように、Hash#[]= は、thread に対し
て保護されていないようです。

そこで Mutex を使って保護してみました。

-----^ mutex_test.rb
#!/usr/local/bin/ruby
require "thread"
$mt = Mutex.new
$bar = {}
$s = "a"

def foo(n)
  loop do
    s0 = $s
    $mt.synchronize {
#    Thread.exclusive {
      $bar[s0] = TRUE
    }
    if !$bar[s0]
	fail "#{n})" + s0
    end
    $s = $s.succ
  end
end

Thread.start { foo(0) }
Thread.start { foo(1) }
sleep
-----$ mutex_test.rb


これを動かすと、20回に1回ほど10秒ぐらいで停止します。
Thread.exlusive を使うとこれは起こらないので、class Mutex の方
も若干甘い所があるのではないでしょうか?

if, while 構文などは全て排他処理が必要では?
---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=--
                            Shin-ichro Hara(Nagaoka Univ.of Tech.)





In This Thread