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

ruby-changes:23958

From: akr <ko1@a...>
Date: Sun, 10 Jun 2012 12:46:19 +0900 (JST)
Subject: [ruby-changes:23958] akr:r36009 (trunk): * process.c (rb_f_exec): call rb_exec_async_signal_safe except on

akr	2012-06-10 12:46:09 +0900 (Sun, 10 Jun 2012)

  New Revision: 36009

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

  Log:
    * process.c (rb_f_exec): call rb_exec_async_signal_safe except on
      Mac OS X.  cf. the comment in before_exec_non_async_signal_safe.

  Modified files:
    trunk/ChangeLog
    trunk/process.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 36008)
+++ ChangeLog	(revision 36009)
@@ -1,3 +1,8 @@
+Sun Jun 10 12:43:23 2012  Tanaka Akira  <akr@f...>
+
+	* process.c (rb_f_exec): call rb_exec_async_signal_safe except on
+	  Mac OS X.  cf. the comment in before_exec_non_async_signal_safe.
+
 Sun Jun 10 12:15:18 2012  Tanaka Akira  <akr@f...>
 
 	* io.c (popen_exec): don't call rb_thread_atfork_before_exec.  use
Index: process.c
===================================================================
--- process.c	(revision 36008)
+++ process.c	(revision 36009)
@@ -1014,7 +1014,7 @@
 	/*
 	 * On Mac OS X 10.5.x (Leopard) or earlier, exec() may return ENOTSUPP
 	 * if the process have multiple threads. Therefore we have to kill
-	 * internal threads temporary. [ruby-core: 10583]
+	 * internal threads temporary. [ruby-core:10583]
 	 */
 	rb_thread_stop_timer_thread(0);
     }
@@ -2028,7 +2028,11 @@
 
     rb_exec_arg_prepare(&earg, argc, argv);
 
+#ifdef __MacOS_X__
     rb_exec_err(&earg, errmsg, sizeof(errmsg));
+#else
+    rb_exec_async_signal_safe(&earg, errmsg, sizeof(errmsg));
+#endif
     if (errmsg[0])
         rb_sys_fail(errmsg);
     rb_sys_fail_str(earg.use_shell ? earg.invoke.sh.shell_script : earg.invoke.cmd.command_name);

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

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