From 52c7036436f8cd5255103e37dde0720a997eec63 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 8 Jun 2012 03:04:42 +0000 Subject: process.c: child process error state * process.c (rb_fork_err): error state in the child process is prior to exceptions in proc_syswait(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 ++++- process.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index b0c824bb68..e806bd9479 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,7 @@ -Fri Jun 8 11:26:37 2012 Nobuyoshi Nakada +Fri Jun 8 12:04:39 2012 Nobuyoshi Nakada + + * process.c (rb_fork_err): error state in the child process is prior + to exceptions in proc_syswait(). * process.c (rb_fork_err): determine status on errors. diff --git a/process.c b/process.c index ebf231f69e..13c121f070 100644 --- a/process.c +++ b/process.c @@ -2874,8 +2874,8 @@ rb_fork_err(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALU rb_io_close(io); if (state || size) { if (status) { - *status = state; rb_protect(proc_syswait, (VALUE)pid, status); + if (state) *status = state; } else { rb_syswait(pid); -- cgit v1.2.3