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

ruby-changes:19017

From: naruse <ko1@a...>
Date: Tue, 8 Mar 2011 01:44:43 +0900 (JST)
Subject: [ruby-changes:19017] Ruby:r31055 (trunk): * process.c (get_sc_ngroups_max): define to wrap sysconf(3).

naruse	2011-03-08 01:44:36 +0900 (Tue, 08 Mar 2011)

  New Revision: 31055

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

  Log:
    * process.c (get_sc_ngroups_max): define to wrap sysconf(3).
      this also supports Windows which doesn't have sysconf(3).
    
    * process.c (maxgroups): use get_sc_ngroups_max.
    
    * process.c (proc_setmaxgroups): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/process.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31054)
+++ ChangeLog	(revision 31055)
@@ -1,3 +1,12 @@
+Tue Mar  8 01:43:11 2011  NARUSE, Yui  <naruse@r...>
+
+	* process.c (get_sc_ngroups_max): define to wrap sysconf(3).
+	  this also supports Windows which doesn't have sysconf(3).
+
+	* process.c (maxgroups): use get_sc_ngroups_max.
+
+	* process.c (proc_setmaxgroups): ditto.
+
 Tue Mar  8 01:16:49 2011  NARUSE, Yui  <naruse@r...>
 
 	* gc.c (rb_objspace): an initializer must be a constant.
Index: process.c
===================================================================
--- process.c	(revision 31054)
+++ process.c	(revision 31055)
@@ -4542,10 +4542,18 @@
  */
 #define RB_MAX_GROUPS (65536)
 static int _maxgroups = -1;
+static int get_sc_ngroups_max(void)
+{
+#ifdef _SC_NGROUPS_MAX
+    return (int)sysconf(_SC_NGROUPS_MAX);
+#else
+	return 32;
+#endif
+}
 static int maxgroups(void)
 {
     if (_maxgroups < 0) {
-	_maxgroups = (int)sysconf(_SC_NGROUPS_MAX);
+	_maxgroups = get_sc_ngroups_max();
 	if (_maxgroups < 0)
 	    _maxgroups = RB_MAX_GROUPS;
     }
@@ -4729,7 +4737,7 @@
 proc_setmaxgroups(VALUE obj, VALUE val)
 {
     int ngroups = FIX2INT(val);
-    int ngroups_max = (int)sysconf(_SC_NGROUPS_MAX);
+    int ngroups_max = get_sc_ngroups_max();
 
     if (ngroups <= 0)
 	rb_raise(rb_eArgError, "maxgroups %d shold be positive", ngroups);

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

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