[#1562] Re: rbdj1227.lzh —
わたなべです.
[#1582] [BUG] Regexp — sinara@...
原です。あけましておめでとうございます。
まつもと ゆきひろです
原です。
まつもと ゆきひろです.
[#1583] jchop — WATANABE Hirofumi <watanabe@...>
わたなべです. おめでとう.
[#1614] [tk] Cannot execute some samples — Eiji-usagi-MATSUmoto <ematsu@...>
まつもと@ぴーえふゆーと申します。はじめまして。
[#1625] matz has back! — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#1639] Script for making Index of Ruby Manual — s.suda@...
須田です。
[#1655] [Q] Use of '==', 'eql?' and 'hash' — sinara@...
原です。
[#1667] [Q] Use of Thread and Mutex — sinara@...
原です。
まつもと ゆきひろです.
原です。
原です。
[#1670] [Q] Timeout in Socket (Re: [Q] Use of Thread and Mutex) — sinara@...
原です。
まつもと ゆきひろです.
[#1677] ruby-1.0-970110 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
[#1682] 組み込みクラスのメソッド .htm — (Dezawa Shin-ichiro) <dezawa@...>
出沢です
[#1688] Ruby 1.0-970110 on NeXTSTEP — SHIROYAMA Takayuki <psi@...>
[#1705] 正規表現 単独の ? — Sinichiro Dezawa <dezawa@...>
出沢です
まつもと ゆきひろです
matz> rubyの使っているGNUの正規表現ルーチンのデフォルトではパター
わたなべです.
まつもと ゆきひろです.
[#1720] ruby 1.0-970116 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
[#1723] in-place edit on djgpp/win32 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
[#1753] Usage of Menu — Noritugu Nakamura <nnakamur@...>
[#1762] ruby 1.0-970118 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#1771] rectangle of canvas widget — Noritugu Nakamura <nnakamur@...>
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです.
原です。
[#1788] Text of TkCanvas — Noritugu Nakamura <nnakamur@...>
まつもと ゆきひろです.
まつもと ゆきひろです.
まつもと ゆきひろです.
わたなべです.
[#1794] Filetest error on Ruby-DJ — s.suda@...
須田です。
[#1833] GD.c revised — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#1865] ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです.
わたなべです.
まつもと ゆきひろです.
まつもと@ぴーえふゆーです。
まつもと ゆきひろです.
まつもと@ぴーえふゆーです。
まつもと ゆきひろです.
まつもと@ぴーえふゆーです。
[#1871] None — (Dezawa Shin-ichiro) <dezawa@...>
でざわです
[#1875] toplevel of Tk — Noritugu Nakamura <nnakamur@...>
[#1899] [Dist] Mutex — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
[#1926] [Dist] Mutex module — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
まつもと ゆきひろです.
けいじゅ@SHLジャパンです.
まつもと ゆきひろです.
原です。
まつもと ゆきひろです.
けいじゅ@SHLジャパンです.
けいじゅ@SHLジャパンです.
まつもと ゆきひろです.
けいじゅ@SHLジャパンです.
まつもと ゆきひろです.
原です。
まつもと ゆきひろです.
けいじゅ@SHLジャパンです.
原です。
けいじゅ@SHLジャパンです.
まつもと ゆきひろです.
原です。
まつもと ゆきひろです.
原です。
まつもと ゆきひろです.
原です。
まつもと ゆきひろです.
原です。
まつもと ゆきひろです.
原です。
出沢です
まつもと ゆきひろです.
原です。
[#1953] open (file descriptor) — j_kuro@... (Jun Kuroda)
黒田です.
まつもと ゆきひろです.
黒田です.
原です。
まつもと ゆきひろです.
[ruby-list:1696] Re: [Q] Use of Thread and Mutex
原です。
次の様な、どう考えても無限ループになりそうなスクリプトが、
実は適当な時間で fail します。
-----^ test_thread_hash.rb
#!/usr/local/bin/ruby
@bar = {}
$s = "a"
def foo(n)
loop do
s0 = $s
if (@bar[s0] = TRUE) && !@bar[s0]
fail "#{n})" + s0
end
$s = $s.succ
end
end
Thread.start { foo(0) }
Thread.start { foo(1) }
sleep
-----$ test_thread_hash.rb
これで3日ハマってしまった。^^; やっぱり Hash は保護した方が
いいみたいですね。
thread.rb を初めて見てみたんですが、Thread.exclusive という隠
しメソ?と run と stop だけを使ってうまいこと作ってあるんです
ねえ。感心してしまった。
で、気づいたんですが、push, pop の保護はここではほとんどされて
ません。
それから、ちょっとルーズな所があって、例えば class Queue の
def pop non_block=FALSE
if @que.length == 0
raise ThreadError, "queue empty" if non_block
@waiting.push Thread.current
Thread.stop
end
@que.shift
end
で、@que.length と @que.shift の間のタイムラグがやばい気がし
ます。
もうひとつ。Queue では、pop が実は shift で実装されているとい
うのが、、。 Queue を継承して shift, unshift, delete,.. など
というメソッドを増やして QueArray みたいなクラスを作ろうとす
ると、ややこしくなります。Queue#in, out みたいな名前の方が良
かったかも。
もちろん Queue のイメージからいうとこの pop はもっともではあ
るし、QueArray は独立に作るのがスジかもしれないですが。
---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=--
Shin-ichro Hara(Nagaoka Univ.of Tech.)