* The pipe is non-blocking, if we overflow the kernel's pipe
* buffer we drop the signal. This is not a problem in practice.
*/
- ignore_result(write(signal_pipe[1], &signo, sizeof(signo)));
+ while (write(signal_pipe[1], &signo, sizeof(signo)) == -1) {
+ if (errno != EINTR)
+ break;
+ }
}
#else
void
* The pipe is non-blocking, if we overflow the kernel's pipe
* buffer we drop the signal. This is not a problem in practice.
*/
- ignore_result(write(signal_pipe[1], &signo, sizeof(signo)));
+ while (write(signal_pipe[1], &signo, sizeof(signo)) == -1) {
+ if (errno != EINTR)
+ break;
+ }
}
#endif
* The pipe is non-blocking, if we overflow the kernel's pipe
* buffer we drop the signal. This is not a problem in practice.
*/
- ignore_result(write(signal_pipe[1], &signo, sizeof(signo)));
+ while (write(signal_pipe[1], &signo, sizeof(signo)) == -1) {
+ if (errno != EINTR)
+ break;
+ }
}
}
#endif /* SA_SIGINFO */
* The pipe is non-blocking, if we overflow the kernel's pipe
* buffer we drop the signal. This is not a problem in practice.
*/
- ignore_result(write(signal_pipe[1], &signo, sizeof(signo)));
+ while (write(signal_pipe[1], &signo, sizeof(signo)) == -1) {
+ if (errno != EINTR)
+ break;
+ }
}
#else
static void
* The pipe is non-blocking, if we overflow the kernel's pipe
* buffer we drop the signal. This is not a problem in practice.
*/
- ignore_result(write(signal_pipe[1], &signo, sizeof(signo)));
+ while (write(signal_pipe[1], &signo, sizeof(signo)) == -1) {
+ if (errno != EINTR)
+ break;
+ }
}
#endif
/* setup tty and exec command */
exec_pty(details, &cstat, errpipe[1]);
- ignore_result(write(errpipe[1], &cstat, sizeof(cstat)));
+ while (write(errpipe[1], &cstat, sizeof(cstat)) == -1) {
+ if (errno != EINTR)
+ break;
+ }
_exit(1);
}
close(errpipe[1]);
* The pipe is non-blocking, if we overflow the kernel's pipe
* buffer we drop the signal. This is not a problem in practice.
*/
- ignore_result(write(signal_pipe[1], &signo, sizeof(signo)));
+ while (write(signal_pipe[1], &signo, sizeof(signo)) == -1) {
+ if (errno != EINTR)
+ break;
+ }
}
/*