ささだです.

 下記の件,見事にスルーされていますが,せめてこれを
include/ruby/intern.h から外して,もう少し議論させてもらえませんか.この
API は,どうにも許せない感じです.

(2011/02/13 3:49), SASADA Koichi wrote:
>  ささだです.
> 
> http://d.hatena.ne.jp/nagachika/20110212/ruby_trunk_changes_30843_30852
> で変更を知りました.
> 
> (2011/02/12 14:44), nobu wrote:
>> Index: include/ruby/intern.h
>> ===================================================================
>> --- include/ruby/intern.h	(revision 30851)
>> +++ include/ruby/intern.h	(revision 30852)
>> @@ -797,6 +797,7 @@
>>  int rb_thread_interrupted(VALUE thval);
>>  VALUE rb_thread_blocking_region(rb_blocking_function_t *func, void *data1,
>>  				rb_unblock_function_t *ubf, void *data2);
>> +VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
>>  #define RUBY_UBF_IO ((rb_unblock_function_t *)-1)
>>  #define RUBY_UBF_PROCESS ((rb_unblock_function_t *)-1)
>>  VALUE rb_mutex_new(void);
> 
>  新設された API (rb_thread_io_blocking_region) について質問です.背景
> や,細かい実装を見ていないで質問します.すみません.
> 
> - ubf 無くて良いの?
> - fd って1個だけなの?
> 
>  というか,このレイヤでこの処理(close したとき,別のスレッドに例外を発
> 生させるための前処理)を wrap するのは筋が悪いように思うのですが.せめ
> て,blocking_region なんて名前はやめたほうが.
> 
>  ちなみに,POSIX や Windows だと,close しちゃうと他の待っているスレッ
> ドに対してどういう挙動になるんでしょう.
> 
>  近永さんの日記
> 
>> Socket からの読み込みでブロック中に他のスレッドでその Socket を close
> した時に例外が発生せずに待ってしまう不具合
> 
> を読むと,待っちゃうんでしょうか.他のインタプリタではどう処理してるんだ
> ろう?
> 
>  すでに,ruby-core で議論済みでしたらすみません(未読が 963 通...).
> 


-- 
// SASADA Koichi at atdot dot net