[#26266] pragma on ripper — nobuyoshi nakada <nobuyoshi.nakada@...>

なかだです。

15 messages 2005/06/02

[#26312] rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org>

最近、とあるプログラム(五月雨)が、無限ループに陥ることが何回かありました。

32 messages 2005/06/09
[#26323] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/10

In article <TYOMLEM04Rqf69aZbLA0000002d@tyomlvem02.e2k.ad.ge.com>,

[#26329] Re: rb_gc_mark_threads spin — nobu@... 2005/06/10

なかだです。

[#26331] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506101543.j5AFhToG009328@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26333] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <8764wlil9l.fsf@m17n.org>,

[#26334] Re: rb_gc_mark_threads spin — nobu@... 2005/06/11

なかだです。

[#26337] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506111335.j5BDZkoG019423@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26405] WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org>

NetBSD 2.0 で WEBrick を使って HTTP サーバを動かした場合、クライアント

24 messages 2005/06/29
[#26477] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

ごとうゆうぞうです。

[#26480] Re: WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org> 2005/07/08

In article <20050708.175802.957830318.gotoyuzo@sawara.does.notwork.org>,

[#26481] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

In message <87fyupzgcq.fsf@m17n.org>,

[#26421] Subversion — Shugo Maeda <shugo@...>

前田です。

24 messages 2005/06/30
[#26422] Re: Subversion — Yukihiro Matsumoto <matz@...> 2005/06/30

まつもと ゆきひろです

[#26423] Re: Subversion — "U.Nakamura" <usa@...> 2005/06/30

こんにちは、なかむら(う)です。

[ruby-dev:26369] Re: IO.select dumps core

From: とみたまさひろ <tommy@...>
Date: 2005-06-23 03:59:31 UTC
List: ruby-dev #26369
とみたです。

On Thu, 23 Jun 2005 08:26:57 +0900
nobu@ruby-lang.org wrote:

> > 私は Solaris で poll() の存在を初めて知ったので、select() はもう古くて 
> > poll() を使うべきなんだと思ってました。
> > 
> > poll() がある環境では select() ではなく poll() を使うようにするという
> > のがたぶん綺麗な解決方法なんだと思います。

> これはシステムによってまちまちで、たとえばLinuxではselect()にも
> FD_SETSIZEの制限がなくて、poll()もselect()で実装していたはずで
> す。

ええと、「カーネルレベルでは制限がない」という話でしょうか。

でもライブラリ側で制限があるんであれば、結局普通には使うことができない
ということですよね。

select() で FD_SETSIZE 以上のファイル記述子を扱う方法というのが公式に
無い以上、あくまでも select() でやろうとしたら、各OS毎の実装に依存した 
select() の制限を迂回するような仕組みを Ruby 内に実装しないといけなく
なるような気がするんですが、杞憂でしょうか。

それよりは、poll() が用意されてる環境では poll() を使ってしまった方が
いいんじゃないかと。

poll() がない環境(というのがどういうのかは私は知らないんですが)では、
そもそも FD_SETSIZE 以上のファイルを作れないように制限しちゃうとかでも
いいんじゃないでしょうか。SIGSEGV で落ちるよりはマシだと思います。

・ poll() がある環境:
   select() ではなく poll() を使う。

・ poll() がない環境:
   open/socket/pipe 等で FD_SETSIZE 以上のファイル記述子が生成された場
   合は、Errno::EMFILE 例外にする。

というような感じではどうでしょう?

-- 
とみたまさひろ <tommy@tmtm.org>
3469 42CC 4D32 F53C AD98  65A5 8C37 FF09 69C1 6040

In This Thread