OSDN Git Service

* fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only call
authorcorinna <corinna>
Mon, 23 Nov 2009 21:21:38 +0000 (21:21 +0000)
committercorinna <corinna>
Mon, 23 Nov 2009 21:21:38 +0000 (21:21 +0000)
fhandler_base::set_close_on_exec for inheritable sockets.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_socket.cc

index 529daa2..ab6cf6f 100644 (file)
@@ -1,3 +1,8 @@
+2009-11-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only call
+       fhandler_base::set_close_on_exec for inheritable sockets.
+
 2009-11-21  Corinna Vinschen  <corinna@vinschen.de>
 
        * globals.cc (ro_u_dll): New R/O unicode string.
index 6a66206..ba230df 100644 (file)
@@ -2034,8 +2034,13 @@ fhandler_socket::set_close_on_exec (bool val)
 {
   set_no_inheritance (wsock_mtx, val);
   set_no_inheritance (wsock_evt, val);
-  fhandler_base::set_close_on_exec (val);
-  debug_printf ("set close_on_exec for %s to %d", get_name (), val);
+  if (need_fixup_before ())
+    {
+      close_on_exec (val);
+      debug_printf ("set close_on_exec for %s to %d", get_name (), val);
+    }
+  else
+    fhandler_base::set_close_on_exec (val);
 }
 
 void