[#43467] [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...>

kosakiです

15 messages 2011/05/08
[#43482] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — SASADA Koichi <ko1@...> 2011/05/08

 ささだです.

[#43486] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

>  ささだです.

[#43487] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — SASADA Koichi <ko1@...> 2011/05/09

 ささだです.

[#43488] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

>  ささだです.

[#43489] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

自己解決しました

[#43500] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — SASADA Koichi <ko1@...> 2011/05/09

 ささだです.

[#43501] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

>> ということは危ないのは RUBY_VM_SET_INTERRUPT() がロストしたときに、タイムアウトなしの

[#43468] Re: [ruby-changes:19438] Ruby:r31478 (trunk): * test/date/*.rb: use skip /w messages. — KOSAKI Motohiro <kosaki.motohiro@...>

2011/5/8 tadf <ko1@atdot.net>:

8 messages 2011/05/08

[#43476] [Ruby 1.9 - Feature #4653][Open] [PATCH 1/1] new method Enumerable#rude_map — Shyouhei Urabe <shyouhei@...>

16 messages 2011/05/08

[#43493] [Ruby 1.9 - Feature #4657][Open] add option to hide skip messages on unit/test — Shota Fukumori <sorah@...>

11 messages 2011/05/09

[#43502] draft schedule of Ruby 1.9.3 — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

23 messages 2011/05/09
[#43505] Re: draft schedule of Ruby 1.9.3 — "U.Nakamura" <usa@...> 2011/05/10

Hello,

[#43513] Re: draft schedule of Ruby 1.9.3 — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/10

(ruby-coreはずしました)

[#43587] [Ruby 1.9 - Feature #4788][Open] resolv.rb refactoring — Makoto Kishimoto <redmine@...>

15 messages 2011/05/27

[ruby-dev:43556] Re: yieldされたlambdaからのreturn/breakの動きについて

From: "Y. NOBUOKA" <nobuoka@...>
Date: 2011-05-15 07:57:23 UTC
List: ruby-dev #43556
信岡です。

呼び出し側からするとメソッド内部で yield を使っているのか
どうかわからないので仕様として微妙な気もしますね。
以下のような 2 つのメソッド c1 と c2 を考えたとき、両方とも
同じ挙動であるべきなのではないかと思うのですが、実際は
異なる挙動をしてしまいます。。

議論の余地はあるのではないかと思います。

 def c1( &block )
   yield
   :method
 end
 def c2( &block )
   block.call()
   :method
 end

 # yield 呼び出しされると, proc と同じ扱い
 p c1( &->(){ return :return_lambda } ) rescue p $!
 p c1( &->(){ break  :break_lambda } ) rescue p $!
 # block.call() で呼び出されると lambda 本来の動き
 p c2( &->(){ return :return_lambda } ) rescue p $!
 p c2( &->(){ break  :break_lambda } ) rescue p $!

 $ ruby -v tmp.rb
 ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
 #<LocalJumpError: unexpected return>
 #<LocalJumpError: break from proc-closure>
 :method
 :method

(最初の LocalJumpError は top レベルで return しようとしたため発生)

-- 
信岡 ゆう (NOBUOKA Yu)

In This Thread

Prev Next