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

ruby-changes:10913

From: akr <ko1@a...>
Date: Sun, 22 Feb 2009 01:53:41 +0900 (JST)
Subject: [ruby-changes:10913] Ruby:r22488 (trunk): * ext/socket/ancdata.c (bsock_recvmsg_internal): don't call

akr	2009-02-22 01:53:30 +0900 (Sun, 22 Feb 2009)

  New Revision: 22488

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

  Log:
    * ext/socket/ancdata.c (bsock_recvmsg_internal): don't call
      discard_cmsg_resource when EMFILE.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/ancdata.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22487)
+++ ChangeLog	(revision 22488)
@@ -1,3 +1,8 @@
+Sun Feb 22 01:52:30 2009  Tanaka Akira  <akr@f...>
+
+	* ext/socket/ancdata.c (bsock_recvmsg_internal): don't call
+	  discard_cmsg_resource when EMFILE.
+
 Sun Feb 22 01:48:51 2009  Tanaka Akira  <akr@f...>
 
 	* ext/socket/ancdata.c (bsock_recvmsg_internal): gc when SCM_RIGHTS
Index: ext/socket/ancdata.c
===================================================================
--- ext/socket/ancdata.c	(revision 22487)
+++ ext/socket/ancdata.c	(revision 22488)
@@ -1301,7 +1301,6 @@
         if (errno == EMFILE && !gc_done) {
           /* SCM_RIGHTS hit the file descriptors limit, maybe. */
           gc_and_retry:
-            discard_cmsg_resource(&mh);
             rb_gc();
             gc_done = 1;
 	    goto retry;
@@ -1323,8 +1322,10 @@
                 mh.msg_controllen < maxctllen - BIG_ENOUGH_SPACE) {
                 /* there are big space bug truncated.
                  * file descriptors limit? */
-                if (!gc_done)
+                if (!gc_done) {
+		    discard_cmsg_resource(&mh);
                     goto gc_and_retry;
+		}
             }
             else {
                 maxctllen *= 2;

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

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