[前][次][番号順一覧][スレッド一覧]

ruby-changes:8950

From: yugui <ko1@a...>
Date: Thu, 4 Dec 2008 14:20:35 +0900 (JST)
Subject: [ruby-changes:8950] Ruby:r20486 (ruby_1_9_1): merges r20444 and r20447 from trunk into ruby_1_9_1.

yugui	2008-12-04 14:19:30 +0900 (Thu, 04 Dec 2008)

  New Revision: 20486

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20486

  Log:
    merges r20444 and r20447 from trunk into ruby_1_9_1.
    add comment for select behavior on file descriptors over FD_SETSIZE.

  Modified files:
    branches/ruby_1_9_1/thread.c

Index: ruby_1_9_1/thread.c
===================================================================
--- ruby_1_9_1/thread.c	(revision 20485)
+++ ruby_1_9_1/thread.c	(revision 20486)
@@ -2003,6 +2003,34 @@
 /* for IO */
 
 #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.
+ *
+ * So rb_fd_set doesn't reject file descriptors bigger than FD_SETSIZE.
+ */
+
 void
 rb_fd_init(volatile rb_fdset_t *fds)
 {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]