From c39fd4c34056fbebafc5ccfb3d63612538d3f234 Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 10 Jun 2012 03:46:09 +0000 Subject: * 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- process.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'process.c') diff --git a/process.c b/process.c index 619f6a9f04..451650da0f 100644 --- a/process.c +++ b/process.c @@ -1014,7 +1014,7 @@ static void before_exec_non_async_signal_safe(void) /* * 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_f_exec(int argc, VALUE *argv) 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); -- cgit v1.2.3