summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-19 07:34:00 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-19 07:34:00 +0000
commit00b6e05470ed9f8958b91782c033884091922840 (patch)
tree793e71e72c39537efc4eda7d6c6240b89d407228 /process.c
parent0205517a8c8ea0524350917206ec41c3bdbf6579 (diff)
Mon Jan 19 16:33:52 JST 1998
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@27 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r--process.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/process.c b/process.c
index 0b9373a88c..5a7ce36b47 100644
--- a/process.c
+++ b/process.c
@@ -579,6 +579,7 @@ rb_syswait(pid)
{
RETSIGTYPE (*hfunc)(), (*qfunc)(), (*ifunc)();
int status;
+ int i;
#ifdef SIGHUP
hfunc = signal(SIGHUP, SIG_IGN);
@@ -588,7 +589,9 @@ rb_syswait(pid)
#endif
ifunc = signal(SIGINT, SIG_IGN);
- if (rb_waitpid(pid, 0, &status) < 0) rb_sys_fail("wait");
+ do {
+ i = rb_waitpid(pid, 0, &status);
+ } while (i == -1 && errno == EINTR);
#ifdef SIGHUP
signal(SIGHUP, hfunc);