[#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>
遠藤です.
[#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:15031] Re: ConditionVariable (cv3.rb)
原です。
In message "[ruby-list:15030] ConditionVariable (cv3.rb)"
on 99/06/17, Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp> writes:
|test1.rb を改造した test-cv.rb(後掲)で、バッファサイズ3のパ
|イプに、送り手4スレッド受け手3スレッドでオブジェクトを通すも
|のです。停止するのは全ての受け手スレッドが 1000 個のオブジェク
|トを受け取った時とします。
一応 test-cv.rb です。無いよりましという程度で、必ずしもポイント
をついたいいテストプログラムというわけではありません。
幾つかパラメータをコマンドライン・パラメータに取るので、いろいろ
やってみると面白いですが、数字によって結構(数論的な?)動きがあ
ったりして、実は簡単に結論が出せません。cv3.rb はパラメータによ
らず比較的安定しているのは確かですが。もうちょっとちゃんとしたテ
ストプログラムが無いとこれ以上の効率や適正性の追求は難しそうです。
(バッファサイズ10送り手12受け手3で100回す例)
$ ruby test-cv.rb max10 s12 r3 100 cv3.rb
-------------^ test-cv.rb
#!/usr/local/bin/ruby
Thread.abort_on_exception = true
$sender_num = 4
$receiver_num = 3
$rtimes = 1000
$max = 3
$debug = 0
while para = ARGV.shift
case para
when /^n$/
$no_signal_mutex = true
when /^p$/
$pass = true
when /^d(\d)?$/
$debug = ($1||1).to_i
when /^\d+$/
$rtimes = $&.to_i
when /^max(\d+)$/
$max = $1.to_i
when /^r(\d+)$/
$receiver_num = $1.to_i
when /^s(\d+)$/
$sender_num = $1.to_i
else
$o = para
end
end
class Thread
Num = [0]
Obj2num = {Thread.current => 0}
def Thread.start0
Num[0] = Num[0]+1
t = Thread.start {
Thread.stop
yield
}
Obj2num[t] = Num[0]
t
end
def num
Obj2num[self]
end
def Thread.num
Obj2num[Thread.current]
end
alias to_s0 to_s
def inspect; "#{Obj2num[self]}"; end
def to_s; "#{Obj2num[self]}"; end
end
case $o
when /cv(\d+)/
require $o
$ver = $1.to_i
$full = ConditionVariable.new
$mutex = Mutex.new
if $ver > 2
$signal_param = $mutex unless $no_signal_mutex
end
$wait_param = $mutex
$empty = ConditionVariable.new
when /^monitor/
require $o
$mutex = Monitor.new
$full = $mutex.new_cond
$empty = $mutex.new_cond
when /^mutex/
require $o
$mutex = Mutex.new
$full = ConditionVariable.new($mutex)
$empty = ConditionVariable.new($mutex)
else
raise "can't get option: #$o"
end
print "TEST CONDITION VARIABLE <<< #{$o.upcase} >>>\n"
printf("Sender:%d, Receiver:%d (each receives %d times), Buffer:#$max\n",
$sender_num, $receiver_num, $rtimes)
$queue = []
$rwaste = 0
$rwaste1 = 0
$swaste = 0
$swaste1 = 0
$snds = []
$rcvs = []
$snds_times = {}
$rcvs_times = {}
$sender_num.times do
$snds.push Thread.start0 {
n = 0
$snds_times[Thread.current] = 0
loop do
$mutex.synchronize {
k = 0
while $queue.size >= $max
k += 1
if $wait_param
$full.wait($wait_param)
else
$full.wait
end
$swaste += 1 if k > 1
end
$swaste1 += 1 if k > 1
$queue.push [n, Thread.num]
if $queue.size >= 1 # == true
if $signal_param
$empty.signal($signal_param)
else
$empty.signal
end
end
}
n += 1
$snds_times[Thread.current] = n
Thread.pass if $pass
end
}
end
$receiver_num.times do
$rcvs.push Thread.start0 {
n = 0
$rcvs_times[Thread.current] = 0
$rtimes.times do
$mutex.synchronize {
k = 0
while $queue.size <= 0
k += 1
if $wait_param
$empty.wait($wait_param)
else
$empty.wait
end
$rwaste += 1 if k > 1
end
$rwaste1 += 1 if k > 1
v = $queue.shift
if $queue.size < $max
if $signal_param
$full.signal($signal_param)
else
$full.signal
end
end
printf("get %s (#%s->#%s)\n", v[0], v[1], Thread.num) if $debug > 0
}
n += 1
$rcvs_times[Thread.current] = n
Thread.pass if $pass
end
}
end
# START
Thread.critical = true
Thread::Obj2num.each do |t, n|
t.wakeup if n > 0
end
Thread.critical = false
$rcvs.each do |t|
VERSION.to_f >= 1.3 ? t.join : Thread.join(t)
end
$snds.each do |t|
Thread.kill(t)
end
printf("Idling1: send =%2d, receive =%2d\n", $swaste1, $rwaste1)
printf("Idling2: send =%2d, receive =%2d\n", $swaste, $rwaste)
$snds.each do |t|
printf("#%s sends %d times\n", t, $snds_times[t])
end
-------------$ test-cv.rb
以外と長かった。(^^;