[#14715] HTTP Client with Ruby — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
なひです.
高橋征義です。
ごとけんです
なひです.
高橋です。みなさまどうもありがとうございます。
なひです.
前橋です。
なひです.
なひです.すいません,駄目です.^^;
[#14747] Ruby-gtk の Text Widget について — Takano Naoki <takanon@...>
はじめまして。
[#14763] do end + do end — Wakou Aoyama <wakou@...>
青山です。
[#14765] ruby 1.3.4 with ipv6 — Yasunari Momoi <momo@...>
ruby 1.3.4 を入れたんですが,IPv6 対応しているんですね (^^).
[#14766] ruby 1.3.4 on BSD/OS 3.1 — Yasunari Momoi <momo@...>
BSD/OS 3.1 (with kame) で ruby-1.3.4 を作ろうとしているんで
まつもと ゆきひろです
前田です。
わたなべです.
[#14790] Microsoft Perl ? — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#14833] Regacy scripts depend the ruby old version. — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#14842] texinfo document for ruby-1.3 — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
新井です。
From: Koji Arai <JCA02266@nifty.ne.jp>
[#14854] Rubyfaq-990607 — Akira Endo <akendo@...3.rim.or.jp>
遠藤です.
[#14860] CVSup server — Yasuhiro Fukuma <yasuf@...>
福間%未読メールどっさり@福岡 です。
[#14863] OO Software Construction by Meyer — Akira Endo <akendo@...3.rim.or.jp>
遠藤です.
[#14874] ruby-gtk trouble — Jun Adachi <adachi@...>
安達@沖データと申します。
[#14900] Rubyfaq-990608 — Akira Endo <akendo@...3.rim.or.jp>
遠藤です.
[#14917] Ruby/Tk and Threads — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
こんにちは、越水です。
[#14953] 男親なら誰でも思う — 中村暁史 <anakamur@...>
[#14957] textarea with CGI.rb — HATTORI Masashi <hattori@...>
服部といいます。こんにちは。
[#14970] thread with curses — HATTORI Masashi <hattori@...>
服部といいます。こんにちは。
[#14980] 初期化メソッドの追加 — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#15003] 文字列から数値への変換失敗を検出したい — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#15012] ext ML の過去ログはいずこ? — 中村暁史 <anakamur@...>
原です。
akaishi です。
わたなべです.
前田です。
[#15045] mail library — Minero Aoki <aamine@...>
あおきです。
あおきです。
あおきです。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
石橋秀仁です.
あおきです。
まつもと ゆきひろです
あおきです。
なひです.
あおきです。
なひです.
松尾です。
なひです.
松尾です。
有馬@FITECです。
松尾です。
はじめまして、岩間です。
なひです.mod_rubyと格闘中です.
なひです.mod_rubyネタはruby-listでよいでしょうか?
前田です。
なひです.
前田です。
なひです.
小松です。
前田です。
小松です。
前田です。
小松です。
前田です。
小松です。
まつもと ゆきひろです
たむら です。
あおきです。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
あおきです。
[#15057] 複雑?な構造体の定義方法 — Koichi Shigematsu <shige@...>
しげまつ と申します。 とっても久しぶりの投稿です。
まつもと ゆきひろです
しげまつ です。
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
In message "[ruby-list:15078] Re: pattern (Re: 複雑?な構造体の定義方法)"
[#15093] String#rindex with arbitrary starting point — kjana@... (YANAGAWA Kazuhisa)
「String#rindex の第二引数ってば,探索を『始める』ポイントじゃなくて
前田です。
[#15112] pty on NeXTSTEP3.3J — SHIROYAMA Takayuki <psi@...>
[#15116] irb & ruby — Takashi Nishimoto <g96p0935@...>
ruby の最新版 (990625) を /usr/local 以下にインストールしたのですが、
[#15121] ruby-gtk-0.19 released — Hiroshi Igarashi <igarashi@...>
いがらし%Ruby/GTKメンテナ です。
From: Hiroshi Igarashi <igarashi@ueda.info.waseda.ac.jp>
いがらしです。
[#15131] game of life: ruby/gtk version — Takahiro Maebashi <maebashi@...>
前橋です。
[#15160] undefined method `-@' for Fixnum (NameError) — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
こんにちは、越水です。
まつもと ゆきひろです
[ruby-list:14819] Re: ConditionVariable (again)
原です。
In message "[ruby-list:14813] Re: ConditionVariable (again)"
on 99/06/04, Shugo Maeda <shugo@netlab.co.jp> writes:
|
|前田です。
|> signal の後、条件が変わってしまって、、、という [ruby-list:6735]
|> 以降のスレッドで議論された問題は run を使う限りないと思うのです
|> がどうでしょうか。
|
|たしかスケジューリングの話ですよね。
|具体的にどういう内容かはすっかり忘れました(^_^;)が、monitor.rbで
|は効率を犠牲にして安全側に倒した覚えがあります。
ふーむ。monitor.rb は私にとって幾つか謎があります。
例えば Thread#run が一つも無くて、Thread#wakeup のみが使われている
こと。これも、スケジューリング問題の調整のためでしょうか。あとロッ
クの owner という概念があって、そこかしこに、owner がずれてると例外
を発生させる様になっているところとか。owner はカウントつきロックの
ためにだけあるのでは無いようですね。
|> mutex.rb があるにもかかわらず、現在の thread.rb に入っている CV
あ、またまたすいません。monitor.rb の書き間違いです。(^^;
|> #同じ事が monitor.rb でも問題になると思いますが、大丈夫なのかな。
|
|monitor.rbだとwaitの中のmutex.unlock相当の処理をConditionVariable
|の方で直接制御しているので、大丈夫だと思います。(たぶん)
monitor.rb は全部自前でバンバンしているんですね。
私はスレッドに関するプログラムがちゃんと動くかどうか検証するのに
あちこちに(critical である所とか、キューに回って Thread.stop した
直後とかは避けて)Thread.pass を入れて強制的にスレッドの切替を起こ
してみるのですが、monitor.rb で問題になりそうな所でやってみました。
まず monitor.rb コピー mon-test.rb を取ります。:-)
そして、253行目あたり、クリティカルセクションが終った所で pass さ
せます。
----------------------------------
Thread.critical = false
MON_EXIT
Thread.pass
----------------------------------
そして、下の(せきさんの TinyQueue でインプットを2つにした)
スクリプトを動かします。
するとやはり dead lock が起こります。(Linux です。)
詳しい動作はわからないのですが、、、(直前の Thread.critical
= false を削除しても直らない)。
-----------------^ test1.rb
#!/usr/bin/ruby
require "mon-test.rb"
Thread.abort_on_exception = true
class TinyQueue
def initialize(max=2)
@max = max
@mutex = Monitor.new
@full = @mutex.new_cond
@empty = @mutex.new_cond
@q = []
end
def count
@q.size
end
def enq(v)
@mutex.synchronize {
@full.wait if count == @max
@q.push v
@empty.signal if count == 1
}
end
def deq
@mutex.synchronize {
@empty.wait if count == 0
v = @q.shift
@full.signal if count == (@max - 1)
v
}
end
alias send enq
alias recv deq
end
q = TinyQueue.new(1)
foods = 'Apple Banana1 Strawberry Udon Rice Milk'.split
l = []
sender_size = 2
sender_size.times do
th = Thread.new {
for obj in foods
q.send(obj)
print "sent ", obj, "\n"
end
q.send nil
}
l.push th
end
th = Thread.new {
c = 0
loop do
obj = q.recv
c += 1 if obj == nil
print " recv ", obj, "\n"
break if c >= sender_size
end
}
l.push th
l.each do |t|
Thread.join t
end
-----------------$ test1.rb