From 36f3603cae6536e571220721e916b8d284cf0675 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> Date: Tue, 10 Feb 1998 08:44:05 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'v1_1b7'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_1b7@70 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- process.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'process.c') diff --git a/process.c b/process.c index 9d50fea8bf..314d3ea24a 100644 --- a/process.c +++ b/process.c @@ -6,7 +6,7 @@ $Date$ created at: Tue Aug 10 14:30:50 JST 1993 - Copyright (C) 1993-1996 Yukihiro Matsumoto + Copyright (C) 1993-1998 Yukihiro Matsumoto ************************************************/ @@ -361,7 +361,7 @@ rb_proc_exec(str) if (state != -1) exit(state); #else -#if defined(__human68k__) +#if defined(__human68k__) || defined(__CYGWIN32__) char *shell = dln_find_exe("sh", 0); int state = -1; before_exec(); @@ -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); -- cgit v1.2.3