bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#5819: 23.1.93; OSX: start-process sometimes returns an unready proce


From: YAMAMOTO Mitsuharu
Subject: bug#5819: 23.1.93; OSX: start-process sometimes returns an unready process
Date: Thu, 08 Apr 2010 18:38:32 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shij┼Ź) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

>>>>> On Sun, 04 Apr 2010 14:29:44 +0900, YAMAMOTO Mitsuharu <address@hidden> 
>>>>> said:

> The following patch, which uses openpty, seems to work for me on
> 10.4, but not on 10.3.  I suspect a bug in the kernel.

The following simpler one seems to work for me on 10.4 (but not on
10.3, again).  Could you test if it also works for you, with respect
to this problem and #726 (23.0.60; OSX: Complete OS crash)?

                                     YAMAMOTO Mitsuharu
                                address@hidden

=== modified file 'src/s/darwin.h'
*** src/s/darwin.h      2010-03-30 04:55:59 +0000
--- src/s/darwin.h      2010-04-05 03:21:53 +0000
***************
*** 90,95 ****
--- 90,113 ----
   */
  
  #define HAVE_PTYS
+ /* Run only once.  We need a `for'-loop because the code uses
+    `continue'.  */
+ #define PTY_ITERATION for (i = 0; i < 1; i++)
+ #define PTY_NAME_SPRINTF      /* none */
+ #define PTY_TTY_NAME_SPRINTF  /* none */
+ /* Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8.
+    But we don't have to block SIGCHLD because it is blocked in the
+    implementation of grantpt.  */
+ #define PTY_OPEN                                              \
+   do                                                          \
+     {                                                         \
+       int slave;                                              \
+       if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1)  \
+       fd = -1;                                                \
+       else                                                    \
+       emacs_close (slave);                                    \
+     }                                                         \
+   while (0)
  
  /**
   * PTYs only work correctly on Darwin 7 or higher.  So make the







reply via email to

[Prev in Thread] Current Thread [Next in Thread]