[#41772] [Feature #3513] spawn ..., err: nil — Shyouhei Urabe <redmine@...>
Feature #3513: spawn ..., err: nil
10 messages
2010/07/01
[#41773] Re: [Feature #3513] spawn ..., err: nil
— Tanaka Akira <akr@...>
2010/07/01
2010年7月1日19:09 Shyouhei Urabe <redmine@ruby-lang.org>:
[#41780] Re: [Feature #3513] spawn ..., err: nil
— Urabe Shyouhei <shyouhei@...>
2010/07/02
卜部です。
[#41774] 動的ローディングの仕様について — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
7 messages
2010/07/01
[#41778] [Bug #3515] FreeBSD wrongly raises ECONNRESET on close(2) — Yui NARUSE <redmine@...>
Bug #3515: FreeBSD wrongly raises ECONNRESET on close(2)
12 messages
2010/07/02
[#41826] Re: [Bug #3515] FreeBSD wrongly raises ECONNRESET on close(2)
— Tanaka Akira <akr@...>
2010/07/06
2010年7月2日12:20 Yui NARUSE <redmine@ruby-lang.org>:
[#41828] Re: [Bug #3515] FreeBSD wrongly raises ECONNRESET on close(2)
— Takahiro Kambe <taca@...>
2010/07/06
In message <AANLkTimD2geIuuhr0GQZ4fprYTv3m4kuESajvsrxaItm@mail.gmail.com>
[#41782] [Bug #3522] String::size return invalid size on mswin64 — shintaro kuwamoto <redmine@...>
Bug #3522: String::size return invalid size on mswin64
5 messages
2010/07/02
[#41800] Tempfile#size returns 0 under windows — take_tk <ggb03124@...>
たけ(tk)です。
6 messages
2010/07/03
[#41833] [bug:trunk] GNU/Linux select hang on a socket which TCP state is CLOSED — Tanaka Akira <akr@...>
GNU/Linux で、以下のプログラムがハングします。
7 messages
2010/07/06
[#41834] Re: [bug:trunk] GNU/Linux select hang on a socket which TCP state is CLOSED
— Yukihiro Matsumoto <matz@...>
2010/07/06
まつもと ゆきひろです
[#41835] Re: [bug:trunk] GNU/Linux select hang on a socket which TCP state is CLOSED
— KOSAKI Motohiro <kosaki.motohiro@...>
2010/07/06
kosakiです
[#41856] [Bug #3579] RHEL5のautoconf-2.59だとruby-1.8.7-p299でautoconfが失敗する — Motohiro KOSAKI <redmine@...>
Bug #3579: RHEL5のautoconf-2.59だとruby-1.8.7-p299でautoconfが失敗する
5 messages
2010/07/16
[#41858] Re: [Bug #3579] RHEL5のautoconf-2.59だとruby-1.8.7-p299でautoconfが失敗する
— Nobuyoshi Nakada <nobu@...>
2010/07/17
なかだです。
[#41862] [bug:trunk] rb_data_type_t should be extensible — Nobuyoshi Nakada <nobu@...>
なかだです。
5 messages
2010/07/17
[#41876] redmine.ruby-lang.orgが落ちてる? — kimura wataru <kimuraw@...>
木村(わ)といいます。
4 messages
2010/07/25
[#41883] failed to build ext/tk of ruby-1.9.2-rc2 on Mac OS X — Yutaka Hara <yutaka.hara@...>
yharaです。
6 messages
2010/07/28
[#41884] Re: failed to build ext/tk of ruby-1.9.2-rc2 on Mac OS X
— Hidetoshi NAGAI <nagai@...>
2010/07/28
永井@知能.九工大です.
[#41892] [Feature #3627] catchのブロックを再実行するメソッド — Makoto Kishimoto <redmine@...>
Feature #3627: catchのブロックを再実行するメソッド
6 messages
2010/07/29
[#41893] thread.bind(sym, val) { ... } — Tanaka Akira <akr@...>
スレッド変数を一時的に設定するメソッドを加えるのはどうでしょうか。
7 messages
2010/07/29
[ruby-dev:41906] Re: [Feature #3627] catchのブロックを再実行するメソッド
From:
"KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
Date:
2010-07-31 10:06:51 UTC
List:
ruby-dev #41906
きしもとです
> |throwのかわりに、なにか別のメソッド(rewindという名前はどうでしょう?)を実行すると、catchのブロックが再実行される、というのはどうでしょうか?
>
> 基本的なアイディアを否定するわけではありませんが、
>
> * catchブロックの再実行が必要なユースケースが示されていない
> * rewindという名前はいろいろなところで使われているので望ま
> しくない
>
> ので、現時点では賛成しません。
ユースケースですが、The Art of Multiprocessor Programming の、
ロックフリースキップリストの find メソッド(Fig. 14.13)を Ruby で書いた
ものを示します。(begin と rescue と retry で同等のものを実装しています。
元の Java コードではラベル付きの continue でした)
def find key, before_list, after_list
retry_tag = Class.new Exception
begin
pp = nil
p = @head
@level_max.downto(0){|level|
pp = p.links[level].get_link
loop {
ppp, mark = pp.links[level].get
while mark do
snip = p.links[level].compare_and_set pp, ppp, false, false
unless snip then
raise retry_tag
end
pp = ppp
ppp, mark = pp.links[level].get
end
if pp.key.__send__(@cmp_op, key) == -1 then
p = pp
pp = ppp
else
break
end
}
before_list[level] = p
after_list[level] = pp
}
if pp.key.__send__(@cmp_op, key) == 0 then
pp
else
nil
end
rescue retry_tag
retry
end
end
private :find
また、しばらく考えてみたのですが、C言語で do { continue; } while (0); が
ループにならないことを考えると、デフォルトでは1回きりの実行が期待されている
catch との組み合わせはあまり良くないように思えてきました。
loop のブロックが引数を取るようにして、
loop {|tag|
...
continue tag
...
}
というかたちではどうでしょうか?
あと、名前ですが、continue の他に loop と対になるので pool ...というのは
ダメですね多分。