>>>>> On Tue, 13 Sep 2005 17:21:10 +0900, Nozomu Ando <[EMAIL PROTECTED]> said:
>> (It actually hangs on Mac OS X 10.1.5 and 10.2.8 if >> process-connection-type is set to t. On Mac OS X 10.3.9 it seems >> not to hang. Are there any other problems with vfork on Mac OS X >> 10.3, which is based on Darwin 7?) > A restriction of setsid(2) after vfork(2) may affect Emacs. > http://homepage.mac.com/nand/macosx/vfork_setsid.html Thanks for the info. I'm not sure if it is a real issue for Emacs or not, but maybe vfork should be avoided for now just to be on the safe side. I think I'll move the child_setup_tty call to before (v)fork only for the case that the tty is not reopened in the child process. Any ideas/objections? YAMAMOTO Mitsuharu [EMAIL PROTECTED] Index: src/process.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/process.c,v retrieving revision 1.463 diff -c -r1.463 process.c *** src/process.c 15 Aug 2005 08:44:53 -0000 1.463 --- src/process.c 17 Sep 2005 01:19:14 -0000 *************** *** 1793,1798 **** --- 1793,1804 ---- #endif if (forkin < 0) report_file_error ("Opening pty", Qnil); + #if defined (RTU) || defined (UNIPLUS) || defined (DONT_REOPEN_PTY) + /* In the case that vfork is defined as fork, the parent process + (Emacs) may send some data before the child process completes + tty options setup. So we setup tty before forking. */ + child_setup_tty (forkout); + #endif /* RTU or UNIPLUS or DONT_REOPEN_PTY */ #else forkin = forkout = -1; #endif /* not USG, or USG_SUBTTY_WORKS */ *************** *** 2077,2084 **** --- 2083,2092 ---- #endif /* SIGCHLD */ #endif /* !POSIX_SIGNALS */ + #if !defined (RTU) && !defined (UNIPLUS) && !defined (DONT_REOPEN_PTY) if (pty_flag) child_setup_tty (xforkout); + #endif /* not RTU and not UNIPLUS and not DONT_REOPEN_PTY */ #ifdef WINDOWSNT pid = child_setup (xforkin, xforkout, xforkout, new_argv, 1, current_dir); _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel