OSDN Git Service

* fhandler.h (fhandler_termios::fixup_after_exec): Make non-inlined.
authorcgf <cgf>
Tue, 20 Dec 2005 18:14:42 +0000 (18:14 +0000)
committercgf <cgf>
Tue, 20 Dec 2005 18:14:42 +0000 (18:14 +0000)
* fhandler_termios.cc (fhandler_termios::fixup_after_exec): Don't call
fixup_after_fork if close_on_exec'ed.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler.h
winsup/cygwin/fhandler_termios.cc

index 5a383ea..9044162 100644 (file)
@@ -1,3 +1,9 @@
+2005-12-20  Christopher Faylor  <cgf@timesys.com>
+
+       * fhandler.h (fhandler_termios::fixup_after_exec): Make non-inlined.
+       * fhandler_termios.cc (fhandler_termios::fixup_after_exec): Don't call
+       fixup_after_fork if close_on_exec'ed.
+
 2005-12-19  Christopher Faylor  <cgf@timesys.com>
 
        * cygtls.h (_cygtls::interrupt_now): Subsume interruptible().
index 034281f..0456cec 100644 (file)
@@ -777,7 +777,7 @@ class fhandler_termios: public fhandler_base
   virtual DWORD __acquire_output_mutex (const char *fn, int ln, DWORD ms) {return 1;}
   virtual void __release_output_mutex (const char *fn, int ln) {}
   void fixup_after_fork (HANDLE);
-  void fixup_after_exec () { fixup_after_fork (NULL); }
+  void fixup_after_exec ();
   void echo_erase (int force = 0);
   virtual _off64_t lseek (_off64_t, int);
 };
index 101a595..d607ea6 100644 (file)
@@ -358,6 +358,13 @@ fhandler_termios::line_edit (const char *rptr, int nread, termios& ti)
 }
 
 void
+fhandler_termios::fixup_after_exec ()
+{
+  if (!close_on_exec ())
+    fixup_after_fork (NULL);
+}
+
+void
 fhandler_termios::fixup_after_fork (HANDLE parent)
 {
   fhandler_base::fixup_after_fork (parent);