ruby-changes:8908
From: akr <ko1@a...>
Date: Tue, 2 Dec 2008 17:53:25 +0900 (JST)
Subject: [ruby-changes:8908] Ruby:r20444 (trunk): add comment for select behavior on file descriptors over FD_SETSIZE.
akr 2008-12-02 17:52:19 +0900 (Tue, 02 Dec 2008) New Revision: 20444 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20444 Log: add comment for select behavior on file descriptors over FD_SETSIZE. Modified files: trunk/include/ruby/intern.h Index: include/ruby/intern.h =================================================================== --- include/ruby/intern.h (revision 20443) +++ include/ruby/intern.h (revision 20444) @@ -201,6 +201,32 @@ const char *rb_sourcefile(void); #if defined(NFDBITS) && defined(HAVE_RB_FD_INIT) + +/* + * several Unix platform supports file descriptors bigger than FD_SETSIZE + * in select(2) system call. + * + * - Linux 2.2.12 (?) + * - NetBSD 1.2 (src/sys/kern/sys_generic.c:1.25) + * select(2) documents how to allocate fd_set dynamically. + * http://netbsd.gw.com/cgi-bin/man-cgi?select++NetBSD-4.0 + * - FreeBSD 2.2 (src/sys/kern/sys_generic.c:1.19) + * - OpenBSD 2.0 (src/sys/kern/sys_generic.c:1.4) + * select(2) documents how to allocate fd_set dynamically. + * http://www.openbsd.org/cgi-bin/man.cgi?query=select&manpath=OpenBSD+4.4 + * - HP-UX documents how to allocate fd_set dynamically. + * http://docs.hp.com/en/B2355-60105/select.2.html + * - Solaris 8 has select_large_fdset + * + * When fd_set is not big enough to hold big file descriptors, + * it should be allocated dynamically. + * Note that this assumes fd_set is structured as bitmap. + * + * rb_fd_init allocates the memory. + * rb_fd_term free the memory. + * rb_fd_set may re-allocates bitmap. + */ + typedef struct { int maxfd; fd_set *fdset; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/