ruby-changes:23913
From: akr <ko1@a...>
Date: Fri, 8 Jun 2012 22:43:58 +0900 (JST)
Subject: [ruby-changes:23913] akr:r35964 (trunk): * process.c (rb_fork_err): revert r35955. The condition needs !chfunc
akr 2012-06-08 22:43:48 +0900 (Fri, 08 Jun 2012) New Revision: 35964 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35964 Log: * process.c (rb_fork_err): revert r35955. The condition needs !chfunc to close ep[0] and ep[1]. The catched exception is re-raised immediately after that if status is not NULL. Modified files: trunk/ChangeLog trunk/process.c Index: ChangeLog =================================================================== --- ChangeLog (revision 35963) +++ ChangeLog (revision 35964) @@ -1,3 +1,9 @@ +Fri Jun 8 22:39:32 2012 Tanaka Akira <akr@f...> + + * process.c (rb_fork_err): revert r35955. The condition needs !chfunc + to close ep[0] and ep[1]. The catched exception is re-raised + immediately after that if status is not NULL. + Fri Jun 8 19:43:33 2012 Tanaka Akira <akr@f...> * process.c (rb_exec_err): after_exec() call moved from proc_exec_cmd and Index: process.c =================================================================== --- process.c (revision 35963) +++ process.c (revision 35964) @@ -2783,13 +2783,13 @@ #if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN case EWOULDBLOCK: #endif - if (!status) { + if (!status && !chfunc) { rb_thread_sleep(1); continue; } else { rb_protect((VALUE (*)())rb_thread_sleep, 1, &state); - *status = state; + if (status) *status = state; if (!state) continue; } default: -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/