Don't abort select when on signals

This commit is contained in:
Roy Marples 2007-04-25 18:12:49 +00:00
parent 8e7868d80f
commit c1d6bfc721
3 changed files with 9 additions and 6 deletions

View File

@ -593,10 +593,11 @@ bool rc_wait_service (const char *service)
tv.tv_sec = 0;
tv.tv_usec = WAIT_INTERVAL;
if (select (0, 0, 0, 0, &tv) < 0) {
if (errno != EINTR)
if (errno != EINTR) {
eerror ("select: %s",strerror (errno));
break;
}
}
/* Don't hang around forever */
if (gettimeofday (&now, NULL) != 0) {

View File

@ -374,9 +374,10 @@ static bool svc_exec (const char *service, const char *arg1, const char *arg2)
retval = select (MAX (stdout_pipes[0], stderr_pipes[0]) + 1,
&fds, 0, 0, 0);
if (retval < 0) {
if (errno != EINTR)
if (errno != EINTR) {
eerror ("select: %s", strerror (errno));
break;
}
} else if (retval) {
ssize_t nr;

View File

@ -390,10 +390,11 @@ static int run_stop_schedule (const char *exec, const char *cmd,
if (select (0, 0, 0, 0, &tv) < 0) {
if (errno == EINTR)
eerror ("%s: caught an interupt", progname);
else
else {
eerror ("%s: select: %s", progname, strerror (errno));
return (0);
}
}
if (gettimeofday (&now, NULL) != 0) {
eerror ("%s: gettimeofday: %s", progname, strerror (errno));