[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00868] Re: jserver の接続数上限
- To: freewnn@tomo.gr.jp
- Subject: [freewnn:00868] Re: jserver の接続数上限
- From: Hiroo Ono <hiroo@XXXX>
- Date: Fri, 14 Jun 2002 08:44:51 +0900
- In-Reply-To: <020609033031.M0124588@ikoma.cc.osaka-kyoiku.ac.jp>
- Reply-To: freewnn@tomo.gr.jp
- User-Agent: Wanderlust/2.8.1 (Something) SEMI/1.14.3 (Ushinoya) FLIM/1.14.3(Unebigoryōmae) APEL/10.3 Emacs/21.2 (i386--freebsd)MULE/5.0 (SAKAKI)
小野寛生です
At Sun, 9 Jun 2002 03:30:31 JST,
Tomoki AONO wrote:
確かに、どうするのが良いか、私も考えがまだないです。
ほかにも阿部さんの指摘された
struct wnn_file files[MAX_FILES];
とかも、いきなりがばっと最大を確保するのではなく、動的に扱えないものかと
思ったりもしているのですが…。
> とりあえずそれを抜きにして考えれば、
> get_or_raise(wanted_fd)のようなラッパー関数をつくって、
> ・setrlimit()があればwanted_fdまで増やせるか試す(とれた分
> を返す)
> ・なければwanted_fdは無視してgettablesize()/NOFILEを返す
当面はそれでよいと思います。
・すぐ出来るのは
getdtablesize() があれば、その返り値を nofile に代入。
なければ OPEN_MAX を代入。
それもなければ NOFILE を代入
・暫定的に上記 wrapper 関数を作る
getrlimit() で limit を調べる。
そのまま返すか、wanted fd か soft limit の小さい方まで setrlimit() する
wanted fd が 0 (か、負のどっちがよいでしょう) なら、単に getrlimit で調べた
結果を返す。
getrlimit() / setrlimit() がなければ、
getdtablesize() / OPEN_MAX / NOFILE の順に有無を調べて、それを返す。
というところかと考えています。