summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-08-29 14:44:08 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-08-29 14:44:08 +0000
commite7ddd1fdc3c7807cae6ffa3154bef585c7a4ee8c (patch)
tree0066ddd3ce388e24e7ed8ad970120967b4caf1fa /process.c
parent7c854d6d5e1611f0d4625637661dc03f49cbc942 (diff)
* 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
Diffstat (limited to 'process.c')
-rw-r--r--process.c3
1 files changed, 2 insertions, 1 deletions
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);