From e7ddd1fdc3c7807cae6ffa3154bef585c7a4ee8c Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 29 Aug 2012 14:44:08 +0000 Subject: * internal.h (rb_last_status_clear): declared. * process.c (rb_last_status_clear): exported. (rb_f_system): call rb_last_status_clear. * io.c (rb_f_backquote): call rb_last_status_clear. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- process.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'process.c') diff --git a/process.c b/process.c index 25eed71a4e..e0bb84a4d2 100644 --- a/process.c +++ b/process.c @@ -226,7 +226,7 @@ rb_last_status_set(int status, rb_pid_t pid) rb_iv_set(th->last_status, "pid", PIDT2NUM(pid)); } -static void +void rb_last_status_clear(void) { GET_THREAD()->last_status = Qnil; @@ -3656,6 +3656,7 @@ rb_f_system(int argc, VALUE *argv) #ifdef SIGCHLD RETSIGTYPE (*chfunc)(int); + rb_last_status_clear(); chfunc = signal(SIGCHLD, SIG_DFL); #endif pid = rb_spawn_internal(argc, argv, NULL, 0); -- cgit v1.2.3