diff options
Diffstat (limited to 'sys/kern/uipc_syscalls.c')
-rw-r--r-- | sys/kern/uipc_syscalls.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 6aed023..c46b7ea 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -593,8 +593,11 @@ sendit(p, s, mp, flags) if (auio.uio_resid != len && (error == ERESTART || error == EINTR || error == EWOULDBLOCK)) error = 0; - if (error == EPIPE) + if (error == EPIPE) { + PROC_LOCK(p); psignal(p, SIGPIPE); + PROC_UNLOCK(p); + } } if (error == 0) p->p_retval[0] = len - auio.uio_resid; |